Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
Low
Description
In the spirit of CASSANDRA-4851 and to bring CQL to parity with Thrift, it is important to support reading several distinct CQL rows from a given partition using a distinct set of "coordinates" for these rows within the partition.
CASSANDRA-4851 introduced a range scan over the multi-dimensional space of clustering keys. We also need to support a "multi-get" of CQL rows, potentially using the "IN" keyword to define a set of clustering keys to fetch at once.
(reusing the same example:)
Consider the following table:
CREATE TABLE test ( k int, c1 int, c2 int, PRIMARY KEY (k, c1, c2) );
with the following data:
k | c1 | c2 ---+----+---- 0 | 0 | 0 0 | 0 | 1 0 | 1 | 0 0 | 1 | 1
We can fetch a single row or a range of rows, but not a set of them:
> SELECT * FROM test WHERE k = 0 AND (c1, c2) IN ((0, 0), (1,1)) ;
Bad Request: line 1:54 missing EOF at ','
Supporting this syntax would return:
k | c1 | c2 ---+----+---- 0 | 0 | 0 0 | 1 | 1
Being able to fetch these two CQL rows in a single read is important to maintain partition-level isolation.
Attachments
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-7854 Unable to select partition keys directly using IN keyword (no replacement for multi row multiget in thrift)
- Resolved