返回重复的行,其中in子句具有重复值

时间:2014-01-23 15:34:41

标签: cassandra cqlsh

这是Cassandra(2.0.3)/ cqlsh(cql3.0.2)的预期行为吗? 对我来说似乎是个错误:

cqlsh> create table t1(c1 text primary key);
cqlsh> insert into t1(c1) values ('A');
cqlsh> select * from t1;

 c1
----
  A

cqlsh> select * from t1 where c1 = 'A';

 c1
----
  A

cqlsh> select * from t1 where c1 in( 'A');

 c1
----
  A

cqlsh:dslog> select * from t1 where c1 in( 'A','A');

 c1
----
  A
  A

???

1 个答案:

答案 0 :(得分:1)

是的,这是一个错误。在内部,看起来查询引擎为此查询生成两个单独的命令,然后组合结果而不进行重复数据删除。

有趣的是,2011年有一个very similar bug报告,并且已修复。但是,CQL查询处理器的一个新的,完全重写的版本已经在更高版本的Cassandra中发布了,我猜这个bug又被引入了。