【问题标题】:Cassandra IN clause for single partition key return duplicate rows单个分区键的 Cassandra IN 子句返回重复行
【发布时间】:2016-01-14 15:39:17
【问题描述】:

这是我的架构:

CREATE TABLE test (
 x int,
 y int,
 z int,
 PRIMARY KEY (x)
);

如果我运行以下查询:

select * from test where x in (1,1,1);

Cassandra 将为我返回 3 个重复的行。似乎 Cassandra 在查询跟踪中对同一分区执行了 3 次准备好的语句。

这是 Cassandra 的默认行为吗?

环境:[cqlsh 5.0.1 |卡桑德拉 2.1.9 | CQL 规范 3.2.0 |原生协议 v3]

【问题讨论】:

    标签: cassandra cql cql3


    【解决方案1】:

    似乎 Cassandra 执行准备好的语句一样 在查询跟踪中分区 3 次。

    是的,这正是 CQL IN 语句的行为方式。这个问题给 Cassandra 造成了足够的混乱,以至于在 2.2.0 中及时解决了。如果您在 Cassandra 2.2.0 中尝试此操作,您将看到 IN 现在可以正常运行。

    aploetz@stackoverflow> SELECT * FROM timestamptest WHERe userid IN ('b','b');
    
     userid | activetime               | value
    --------------------------------------------
          b | 2015-09-03 14:16:04-0500 | value3
    
    (1 rows)
    aploetz@cqlsh:stackoverflow> SELECT release_version FROM system.local;
    
     release_version
    -----------------
               2.2.0
    
    (1 rows)
    

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 2014-02-14
      • 1970-01-01
      • 2020-10-19
      • 2013-07-14
      • 1970-01-01
      • 2021-10-29
      • 2018-11-01
      • 2014-09-23
      相关资源
      最近更新 更多