[
https://issues.apache.org/jira/browse/CASSANDRA-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13841092#comment-13841092
]
Sylvain Lebresne commented on CASSANDRA-4476:
---------------------------------------------
bq. Is that just updating Type.allowsIndexQuery?
Yep, that should do the trick, even simpler than I remembered :)
bq. we can compute the range of index partitions we'd need to scan
Right, forgot we were talking of partition keys and we have the key indexes for
that.
> Support 2ndary index queries with only non-EQ clauses
> -----------------------------------------------------
>
> Key: CASSANDRA-4476
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4476
> Project: Cassandra
> Issue Type: Improvement
> Components: API, Core
> Reporter: Sylvain Lebresne
> Priority: Minor
> Fix For: 2.1
>
>
> Currently, a query that uses 2ndary indexes must have at least one EQ clause
> (on an indexed column). Given that indexed CFs are local (and use
> LocalPartitioner that order the row by the type of the indexed column), we
> should extend 2ndary indexes to allow querying indexed columns even when no
> EQ clause is provided.
> As far as I can tell, the main problem to solve for this is to update
> KeysSearcher.highestSelectivityPredicate(). I.e. how do we estimate the
> selectivity of non-EQ clauses? I note however that if we can do that estimate
> reasonably accurately, this might provide better performance even for index
> queries that both EQ and non-EQ clauses, because some non-EQ clauses may have
> a much better selectivity than EQ ones (say you index both the user country
> and birth date, for SELECT * FROM users WHERE country = 'US' AND birthdate >
> 'Jan 2009' AND birtdate < 'July 2009', you'd better use the birthdate index
> first).
--
This message was sent by Atlassian JIRA
(v6.1#6144)