[ https://issues.apache.org/jira/browse/CASSANDRA-11310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15195110#comment-15195110 ]
Benjamin Lerer commented on CASSANDRA-11310: -------------------------------------------- Thanks for the initial patch. Overall, I think that you are going in the right direction. While reviewing your patch I realised that some part of the code are really confusing. I opened CASSANDRA-11354 for improving the code of {{PrimaryKeyRestrictions}}. In {{PrimaryKeyRestrictions}} your changes looks good. Your changes in the constructor will also change the behavior for some secondary index requests. Queries like: {{SELECT * FROM myTable WHERE pk = 1 and clustering1 > 1 AND clustering2 > 1 AND x = 'test' ALLOW FILTERING}} used to be rejected and will now be accepted. It might be good if you could add some tests for that. In my opinion, the {{useFiltering}} name is a bit confusing we should use {{allowFiltering}} instead as what the variable means is that the request had {{ALLOW FILTERING}} specified. In {{StatementRestrictions}} some stuff looks wrong to me. * In {{processClusteringColumnsRestrictions}} the fact that we set {{useSecondaryIndex}} to {{true}} if we allow filtering does not make sense. I am also not sure why we do it for views ([~thobbs] is there a good reason?). * Instead of modifying {{getRowFilter}, I think that you should add {{clusteringColumnsRestrictions}} to {{indexRestrictions}} if filtering is allowed and some clustering columns restrictions require filtering. * It might makes sense to rename {{indexRestrictions}} into {{filteringRestrictions}}. For {{CONTAINS}} restrictions I was thinking of {{CONTAINS}} restrictions on the Clustering columns. > Allow filtering on clustering columns for queries without secondary indexes > --------------------------------------------------------------------------- > > Key: CASSANDRA-11310 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11310 > Project: Cassandra > Issue Type: Improvement > Components: CQL > Reporter: Benjamin Lerer > Assignee: Alex Petrov > Labels: doc-impacting > Fix For: 3.x > > > Since CASSANDRA-6377 queries without index filtering non-primary key columns > are fully supported. > It makes sense to also support filtering on clustering-columns. > {code} > CREATE TABLE emp_table2 ( > empID int, > firstname text, > lastname text, > b_mon text, > b_day text, > b_yr text, > PRIMARY KEY (empID, b_yr, b_mon, b_day)); > SELECT b_mon,b_day,b_yr,firstname,lastname FROM emp_table2 > WHERE b_mon='oct' ALLOW FILTERING; > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)