Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-6875

CQL3: select multiple CQL rows in a single partition using IN

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Bug
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 2.0.9, 2.1 rc1
    • Legacy/CQL
    • None
    • Low


      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.


        Issue Links


          This comment will be Viewable by All Users Viewable by All Users


            thobbs Tom Hobbs Assign to me
            nff Nicolas Favre-Felix
            Tom Hobbs
            Sylvain Lebresne
            0 Vote for this issue
            10 Start watching this issue




                Issue deployment