2

这是 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

???

4

1 回答 1

1

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

有趣的是,早在 2011 年就报告了一个非常相似的错误,并且已修复。然而,一个全新的、完全重写的 CQL 查询处理器版本已经在更高版本的 Cassandra 中发布,我猜这个 bug 又被引入了。

于 2014-02-14T04:29:02.260 回答