[ 
https://issues.apache.org/jira/browse/CASSANDRA-7637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rustam Aliyev updated CASSANDRA-7637:
-------------------------------------

    Description: 
Currently, if I want to perform range query on lexical type I need to do 
something like this:

{code}
SELECT * FROM profile WHERE profile_id = 123 AND
                  attribute > 'interests.food.' AND
                  attribute < 'interests.food.z';
{code}

This is very efficient range query. Yet, many users who are not familiar with 
Thrift and storage level implementation are unaware of this "trick".

Therefore, it would be convenient to introduce CQL keyword which will do this 
more simply:

{code}
SELECT * FROM profile WHERE profile_id = 123 AND
                  attribute START_WITH('interests.food.');
{code}

Keyword would have same restrictions as other inequality search operators plus 
some type restrictions.

Allowed types would be:
 * {{ascii}}
 * {{text}} / {{varchar}}
 * {{map<text, *>}} (same for ascii) (?)
 * {{set<text>}} (same for ascii) (?)

(?) may require more work, therefore optional

  was:
Currently, if I want to perform range query on lexical type I need to do 
something like this:

{code}
SELECT * FROM profile WHERE profile_id = 123 AND
                  attribute > 'interests.food.' AND
                  attribute < 'interests.food.z';
{code}

This is very efficient range query. Yet, many users who are not familiar with 
Thrift and storage level implementation are unaware of this "trick".

Therefore, it would be convenient to introduce CQL keyword which will do this 
more simply:

{code}
SELECT * FROM profile WHERE profile_id = 123 AND
                  attribute START_WITH('interests.food.');
{code}

Keyword would have same restrictions as other inequality search operators plus 
some type restrictions.

Allowed types would be:
 * {{ascii}}
 * {{text}} / {{varchar}}
 * {{inet}} (?)
 * {{map<text, *>}} (same for ascii) (?)
 * {{set<text>}} (same for ascii) (?)

(?) may require more work, therefore optional


> Add CQL3 keyword for efficient lexical range queries (e.g. START_WITH)
> ----------------------------------------------------------------------
>
>                 Key: CASSANDRA-7637
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7637
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API
>            Reporter: Rustam Aliyev
>             Fix For: 3.0
>
>
> Currently, if I want to perform range query on lexical type I need to do 
> something like this:
> {code}
> SELECT * FROM profile WHERE profile_id = 123 AND
>                   attribute > 'interests.food.' AND
>                   attribute < 'interests.food.z';
> {code}
> This is very efficient range query. Yet, many users who are not familiar with 
> Thrift and storage level implementation are unaware of this "trick".
> Therefore, it would be convenient to introduce CQL keyword which will do this 
> more simply:
> {code}
> SELECT * FROM profile WHERE profile_id = 123 AND
>                   attribute START_WITH('interests.food.');
> {code}
> Keyword would have same restrictions as other inequality search operators 
> plus some type restrictions.
> Allowed types would be:
>  * {{ascii}}
>  * {{text}} / {{varchar}}
>  * {{map<text, *>}} (same for ascii) (?)
>  * {{set<text>}} (same for ascii) (?)
> (?) may require more work, therefore optional



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to