[ 
https://issues.apache.org/jira/browse/CASSANDRA-1704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12928263#action_12928263
 ] 

Jonathan Ellis commented on CASSANDRA-1704:
-------------------------------------------

My suggestion to add full support for column predicates and make it more of a 
disjoint set with SQL:

{code}SELECT <COLUMNS> FROM <CF> [USING CONSISTENCY.<LVL>] WHERE <EXPRESSION> 
[LIMIT <X>] [ASC|DESC{code}

Where the main change is the COLUMNS clause which looks like
{code}REVERSED? <CDL>|<SLICE> [MARSHAL AS <TYPE>] [COUNT <Y>]{code}

Where
*<CDL> is a SQL-style comma-delimited list of names
*<TYPE> is a hint saying how to convert the text column names into byte[] 
(usually only necessary if the comparator is BytesType)
*<SLICE> is a <START>..<END> pair
*COUNT replaces COLLIMIT

Note that a bare "AS" is a SQL keyword legal in column-specification clauses to 
change the name in the resultset, so I used MARSHAL AS to disambiguate.  I 
think this is the weakest part of this proposal and improvement can probably be 
made there.  (WITH is another possibility -- also a SQL keyword, but a more 
obscure one, and not AFAIK legal in the column-specification clause so would be 
unambiguous.  NAMES AS might also work.) 

> CQL reads (aka SELECT)
> ----------------------
>
>                 Key: CASSANDRA-1704
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1704
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>    Affects Versions: 0.8
>            Reporter: Eric Evans
>            Priority: Minor
>             Fix For: 0.8
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> Data access specification and implementation for CQL.  
> This corresponds to the following RPC methods:
> * get()
> * get_slice()
> * get_count()
> * multiget_slice()
> * multiget_count()
> * get_range_slices()
> * get_indexed_slices()
> The initial check-in to trunk/ uses a syntax that looks like:
> {code:SQL}
> SELECT (FROM)? <CF> [USING CONSISTENCY.<LVL>] WHERE <EXPRESSION> [ROWLIMIT X] 
> [COLLIMIT Y] [ASC|DESC]
> {code}
> Where:
> * <CF> is the column family name.
> * <EXPRESSION> consists of relations chained by the AND keyword.
> * <LVL> corresponds to one of the enum values in the RPC interface(s).
> What is still undone:
> * Support for indexes
> * Counts
> * Complete test coverage
> And of course, all of this is still very much open to further discussion.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to