2015-10-16 2 views
1

Voici mon schéma:Cassandra clause IN pour les lignes en double retour clé de partition unique

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

Si je lance la requête suivante:

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

Cassandra retournera 3 lignes en double pour moi. Il semble que Cassandra exécute l'instruction préparée sur la même partition pendant 3 fois dans la trace de la requête.

Est-ce le comportement par défaut pour Cassandra.

Environnement: [cqlsh 5.0.1 | Cassandra 2.1.9 | Spécification CQL 3.2.0 | protocole natif v3]

Répondre

2

Il semble que Cassandra exécuter la requête préparée à la même partition pour 3 fois dans la trace de la requête.

Oui, c'est exactement le comportement de l'instruction CQL IN. Ce problème a causé suffisamment de confusion avec Cassandra pour qu'il soit traité à temps pour 2.2.0. Si vous essayez ceci dans Cassandra 2.2.0, vous verrez que IN fonctionne maintenant comme vous le souhaitez.

[email protected]> SELECT * FROM timestamptest WHERe userid IN ('b','b'); 

userid | activetime    | value 
-------------------------------------------- 
     b | 2015-09-03 14:16:04-0500 | value3 

(1 rows) 
[email protected]:stackoverflow> SELECT release_version FROM system.local; 

release_version 
----------------- 
      2.2.0 

(1 rows)