Alex Petrov created CASSANDRA-12102:
---------------------------------------
Summary: Refactor and simplify Filtering-related
StatementRestriction part
Key: CASSANDRA-12102
URL: https://issues.apache.org/jira/browse/CASSANDRA-12102
Project: Cassandra
Issue Type: Improvement
Reporter: Alex Petrov
{{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354],
although filtering-related {{Restrictions}} are split with restrictions that
would go through the 2i already in {{RowFilter}}.
There's still a clear separation, although it's currently made in {{Index}}
implementations and {{RowFilter}}, by removing things that were handled by
{{Index}} for post-filtering like it's done
[here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378].
The primary concern is that we've seen several times that there are many
corner-cases, so we may benefit from splitting columns that are handled by the
index from ones that are handled by post-filtering early in code and possibly
keeping them split for all parts of query.
I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two
parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change
should be quite simple and make the code simpler to understand and extend the
filtering / indexing rules.
We can also validate that all restrictions have been respected (although we can
do that now as well).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)