[ 
https://issues.apache.org/jira/browse/CASSANDRA-11354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15242083#comment-15242083
 ] 

Tyler Hobbs commented on CASSANDRA-11354:
-----------------------------------------

The patch looks good to me overall.  The new class structure is much more 
understandable. I think the only remaining confusing part is the difference 
between {{PartitionKeyRestrictions}} and {{PartitionKeyRestrictionSet}}, which 
is not obvious at first.  I think perhaps renaming 
{{PartitionKeyRestrictionSet}} to {{PartitionKeySingleRestrictionSet}} may make 
this clearer (although the new name is long).  Editing the javadocs to clarify 
that {{PartitionKeyRestrictionSet}} specifically doesn't include token 
restrictions would also help.

Other than that, I only have a couple of nitpicks:
* In {{ClusteringColumnRestrictions}}, most of the checks in the private 
constructor can be moved to {{mergeWith()}} to make it more clear what is going 
on.
* {{Restrictions}} has two redundant methods that are also declared in 
{{Restriction}}: {{getColumnDefs()}} and {{getFunctions()}}

With those fixed, +1

> PrimaryKeyRestrictionSet should be refactored
> ---------------------------------------------
>
>                 Key: CASSANDRA-11354
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11354
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL
>            Reporter: Benjamin Lerer
>            Assignee: Benjamin Lerer
>
> While reviewing CASSANDRA-11310 I realized that the code of 
> {{PrimaryKeyRestrictionSet}} was really confusing.
> The main 2 issues are:
> * the fact that it is used for partition keys and clustering columns 
> restrictions whereas those types of column required different processing
> * the {{isEQ}}, {{isSlice}}, {{isIN}} and {{isContains}} methods should not 
> be there as the set of restrictions might not match any of those categories 
> when secondary indexes are used.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to