[ https://issues.apache.org/jira/browse/CASSANDRA-10124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14718275#comment-14718275 ]
Sam Tunnicliffe commented on CASSANDRA-10124: --------------------------------------------- Digging into this, there are actually several strands that can (and probably should) be pulled out into separate issues. * Index hinting, that is an extension to {{SELECT}} syntax to enable the user to override the internal method of selecting an appropriate index for a given query. (CASSANDRA-10214) * Supporting custom query expressions in {{WHERE}} clause of {{SELECT}}. Parsing and validation of those expressions would be delegated to the custom index implementations which support them. Decoupling this from index hinting per se would require some means of indicating the target index for the expression, but that could be done by supplying the index name as the argument to the expression function. (CASSANDRA-10217) * Internally, once an index has been identified as being the one that should be used for a given query, it should be included as part of the {{ReadCommand}} so that it can be retrieved when needed during execution. Currently we don't do this, meaning that the index selection process implemented in {{SIM::getBestIndexFor}} is run multiple times on both the coordinator and each replica when performing a range command. (CASSANDRA-10215) * Also, during offline discussions on the subject the necessity of having a distinction between {{ROW}} and {{COLUMN}} based indexes came up a couple of times, so I've opened CASSANDRA-10216 to possibly remove that. Having pulled out those separate tickets, leaves this to focus on just the DDL around multi-target custom indexes. > Full support for multi-column and per-row indexes > ------------------------------------------------- > > Key: CASSANDRA-10124 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10124 > Project: Cassandra > Issue Type: Bug > Reporter: Sam Tunnicliffe > Assignee: Sam Tunnicliffe > Labels: client-impacting > Fix For: 3.0 beta 2 > > > Since CASSANDRA-6717 decoupled a secondary index from a single column, we can > expand support for indexes with multiple target columns and for row-based > indexes with truly dynamic targets. > Much of the plumbing for this has been done in CASSANDRA-7771, CASSANDRA-6717 > & by the API rework in CASSANDRA-9459. What remains is: > * Decide on syntax for DDL statements > * Decide on WHERE clause syntax for SELECT (there is some discussion on this > in the comments of CASSANDRA-9459) -- This message was sent by Atlassian JIRA (v6.3.4#6332)