cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rustam Aliyev (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-7637) Add CQL3 keyword for efficient lexical range queries (e.g. START_WITH)
Date Tue, 29 Jul 2014 23:26:40 GMT

     [ 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)

Mime
View raw message