[ https://issues.apache.org/jira/browse/CASSANDRA-2474?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13095913#comment-13095913 ]
Pavel Yaskevich commented on CASSANDRA-2474: -------------------------------------------- bq. We already have the transposition as a visual "hint" as to what is going on. I don't think it's difficult to say that "you need to use componentX when using transposition," and :colon tokens are usually used to represent bind variables in SQL drivers. I didn't use ":transposed" keyword any where but I'm file using it instead of :colon tokens. I don't like "componentX" notation because we can simply preserve ordering of the arguments to make the same thing which is much clearer syntax on my opinion bq. Maybe it is better if we will support (..,..,..) notation for composite columns Can be used as a replacement for "componentX" bq. Sorry, I don't follow. You wrote: bq. If I wanted to add a location tweet field, I'd need to delete (e.g.) the 2e1c3308,cscotta column and replace it with 2e1c3308,cscotta,<location>. So, generally not recommended... but the composite column spec implies we should support it.) Which brings us to: how to deal with insert/update in composite columns. I mean when we want to extend "2e1c3308,cscotta" with <location> we can simply update old column's name to "2e1c3308,cscotta,<location>", for querying we can use "1/0/-1" as <'end-of-component' byte> from CompositeType doc when we want to search by specific components of the column name. e.g. (if I understand CompositeType annotation correctly) {noformat} SELECT name AS (tweet_id, username), value AS body FROM timeline WHERE tweet_id = '95a789a' AND user_id = 'cscotta' {noformat} start = "<7>95a789a.getBytes()<0><7>cscotta.getBytes()<0>" end = "<7>95a789a.getBytes()<0><7>cscotta.getBytes()<1>" Which should give as *all* columns where column name starts with 95a789a,cscotta {noformat} SELECT name AS (tweet_id, username, location), value AS body FROM timeline WHERE tweet_id = '95a789a' AND user_id = 'cscotta' AND location = 'USA' {noformat} start = "<7>95a789a.getBytes()<0><7>cscotta.getBytes()<0><3>USA.getBytes()<0>" end = "<7>95a789a.getBytes()<0><7>cscotta.getBytes()<1><3>USA.getBytes()<1>" Which should give as *all* columns where column name starts with 95a789a,cscotta,USA > 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 > Assignee: Pavel Yaskevich > Labels: cql > Fix For: 1.0 > > Attachments: screenshot-1.jpg, screenshot-2.jpg > > > 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