2014-01-23 35 views
2

這是Cassandra(2.0.3)/ cqlsh(cql3.0.2)的預期行爲嗎? 似乎是一個錯誤對我說:重複的行返回其中in子句具有重複的值

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 

???

+0

如果你願意,你可以在這裏打開一個bug:https://issues.apache.org/jira/browse/CASSANDRA?如果沒有,我會在幾天後自行打開它。 –

+0

報告錯誤:https://issues.apache.org/jira/browse/CASSANDRA-6706 – Gavin

回答

1

是的,這是一個錯誤。在內部看來,查詢引擎爲該查詢生成兩個單獨的命令,然後將結果合併而不進行重複數據刪除。

有趣的是,2011年有一個very similar bug報告,並且它是固定的。然而,一個新的,完全重寫的CQL查詢處理器版本已經發布到Cassandra的後續版本中,我猜這個bug再次被引入。