cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-2474) CQL support for compound columns
Date Fri, 19 Aug 2011 13:38:27 GMT

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

Jonathan Ellis commented on CASSANDRA-2474:
-------------------------------------------

bq. SELECT transposed(column) FROM foo WHERE key=X

Can we just write transposed() then instead of implying that there's actually a single column
we're doing this to?

bq. You could then also do supercol slices like transposed(column, start, end)

This isn't much of an improvement over the old slice syntax, from a CQL perspective.  Here's
why.  If we have "real" WHERE clauses we get all the benefits of regularity that implies:
we can get "traditional" slices

{code}
SELECT transposed() FROM foo WHERE key=X AND column >= X AND column <= Y
{code}

Or "paging" style (start-exclusive), possibly the single most-requested slicing feature:
{code}
SELECT transposed() FROM foo WHERE key=X AND column > X AND column <= Y
{code}

No special syntax needed for count(), other than I'm not sure we want to go full-on subquery
here.  The HQL options don't look great.  Maybe we just add a transposed_count() function
too):
{code}
SELECT count(*) FROM
(SELECT transposed() FROM foo WHERE key=X AND column > X AND column <= Y)
{code}

More natural support for just once slice "endpoint":
{code}
SELECT transposed() FROM foo WHERE key=X AND column >= X
{code}

Multi-row slicing:
{code}
SELECT transposed() FROM foo WHERE key IN (X, Y) AND column >= X AND column <= Y
{code}

Multi-slice from single row (CASSANDRA-2710):
{code}
SELECT transposed() FROM foo WHERE key=X AND ((column >= X AND column <= Y) OR (column
>= A AND column <= B))
{code}

Composite column support (i.e., first-part-of-column-name is exactly X):
{code}
SELECT transposed() FROM foo WHERE key=X AND column=X
{code}

Future proof against hypothetical future CQL support for functions:
{code}
SELECT transposed() FROM foo WHERE key=X AND sqrt(column) < X
{code}

... and of course combinations of the above.  Adding functions for even just the examples
here would be ugly, let alone further mix-and-matching.

> CQL support for compound columns
> --------------------------------
>
>                 Key: CASSANDRA-2474
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2474
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API, Core
>            Reporter: Eric Evans
>              Labels: cql
>             Fix For: 1.0
>
>
> For the most part, this boils down to supporting the specification of compound column
names (the CQL syntax is colon-delimted terms), and then teaching the decoders (drivers) to
create structures from the results.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message