首页 > 解决方案 > 如何理解 page_state 只能用于 CQL Paging 中的 SAME 查询

问题描述

从CQL3 v4 的文档中,page_state 只能用于相同的查询以获取下一页。

但是,QUERY 由<query>和组成<query_parameters>,也来自doc。至少<paging_state>字段 in<query_parameters>将被替换为新值。那么如何判断两个查询是相同的呢?

也许我的假设是错误<paging_state>的,对于所有下一个分页查询都是一样的。

标签: cassandracassandra-3.0cql3

解决方案


没有 2 个查询将完全相同。每个都有一个唯一的连接流 id。在 1 个查询的响应中传递的分页状态可以在同一个查询中返回,以调整查询的开始位置并跟踪要返回的结果数量(基于第 1 个的限制)。请注意,分页状态是返回的最后一个分区和行,返回剩余总数和当前分区内的数量(两个字节数组,两个整数)。

驱动程序不会允许它 - 但是如果您更改查询并从不同的请求传递分页状态,它可能会产生奇怪的结果。特别是如果分页状态来自具有不同模式的表,则在尝试比较键时可能会导致错误。


推荐阅读