[ https://issues.apache.org/jira/browse/CASSANDRA-7981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14214469#comment-14214469 ]
Benjamin Lerer commented on CASSANDRA-7981: ------------------------------------------- I updated the [branch|https://github.com/blerer/cassandra/compare/CASSANDRA-7981]. The patch address most of the review comments. {quote}The restriction class hierarchy is confusing, but I don't see an obvious way to simplify it{quote} Did not found a way to simplify it but I am also not fully sure about what it is making it confusing. I probably have worked already too much with it. May be [~slebresne] will have an idea of how we can improve the things. {quote}There seems to be a conflict between the {mergeWith(Restriction)} signatures in {{Restriction}} and {{Restrictions}}.{quote} It is due to the fact that {{PrimaryKeyRestrictions}} is a composite of {{Restriction}}. The problem with such a big refactoring is that in the end you lost a part of your ability to see if the changes that you have made improve really the readability of the code compare to the original version. > Refactor SelectStatement > ------------------------ > > Key: CASSANDRA-7981 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7981 > Project: Cassandra > Issue Type: Bug > Reporter: Benjamin Lerer > Assignee: Benjamin Lerer > Fix For: 3.0 > > > The current state of the code of SelectStatement make fixing some issues or > adding new functionnalities really hard. It also contains some > functionnalities that we would like to reuse in ModificationStatement but > cannot for the moment. > Ideally I would like to: > * Perform as much validation as possible on Relations instead of performing > it on Restrictions as it will help for problem like the one of > #CASSANDRA-6075 (I believe that by clearly separating validation and > Restrictions building we will also make the code a lot clearer) > * Provide a way to easily merge restrictions on the same columns as needed > for #CASSANDRA-7016 > * Have a preparation logic (validation + pre-processing) that we can easily > reuse for Delete statement #CASSANDRA-6237 > * Make the code much easier to read and safer to modify. -- This message was sent by Atlassian JIRA (v6.3.4#6332)