[
https://issues.apache.org/jira/browse/CASSANDRA-2474?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13096842#comment-13096842
]
Pavel Yaskevich edited comment on CASSANDRA-2474 at 9/4/11 9:57 AM:
--------------------------------------------------------------------
bq. Remember that the ideal for CQL is to have "SELECT x, y, z" and get back
exactly columns x, y, and z.
composite/super columns won't originally play nice with SQL syntax because it
wasn't designed to query hierarchical data.
Few problems I have with componentX syntax:
- if we have 10 subcolumns do I need to list them all using component syntax
(which would be totally unreadable)?
- it lacks scoping therefore on the big queries it will be hard to read
e.g.
{noformat}
SELECT component1 AS tweet_id, component2 AS username, body, location, age,
value AS body
{noformat}
- will potentially be hard to put into grammar because it can have ambiguous
rules again because lack of scoping
- why should we force users to actually give each component a number?
And I don't get why do you think that (..,..,..) is a "rocket science" syntax:
If we presume that user should be familiar with composite type columns before
start using the syntax then he will know what does each section (separated by
",") mean:
{noformat}
SELECT name AS (tweet_id, username, location), value AS body
{noformat}
means that we have three sections as column name which we are aliasing to
tweet_id, username, location
{noformat}
SELECT name AS (tweet_id, username | body | location | age), value AS body
{noformat}
means that we have two components in the name: first one - tweet_id, and second
component that has multiple meanings but we only want to get username, body,
location
{noformat}
SELECT name AS (tweet_id, *), value AS body
{noformat}
means that we still have two components in the column name but we don't care
what holds component #2 and we expect result set to return all of the possible
values.
was (Author: xedin):
bq. Remember that the ideal for CQL is to have "SELECT x, y, z" and get
back exactly columns x, y, and z.
composite/super columns won't originally play nice with SQL syntax because it
wasn't designed to query hierarchical data.
Few problems I have with componentX syntax:
- if we have 10 subcolumns do I need to list them all using component syntax
(which would be totally unreadable)?
- it lacks scoping therefore on the big queries it will be hard to read
e.g.
{noformat}
SELECT component1 AS tweet_id, component2 AS username, body, location,
age, value AS body
{noformat}
- will potentially be hard to put into grammar because it can have ambiguous
rules again because lack of scoping
- why should we force users to actually give each component a number?
And I don't get why do you think that (..,..,..) is a "rocket science" syntax:
If we presume that user should be familiar with composite type columns before
start using the syntax then he will know what does each section (separated by
",") mean:
{noformat}
SELECT name AS (tweet_id, username, location), value AS body
{noformat}
means that we have three sections as column name which we are aliasing to
tweet_id, username, location
{noformat}
SELECT name AS (tweet_id, username | body | location | age), value AS body
{noformat}
means that we have two components in the name: first one - tweet_id, and second
component that has multiple meanings but we only want to get username, body,
location
{noformat}
SELECT name AS (tweet_id, *), value AS body
means that we still have two components in the column name but we don't care
what holds component #2 and we expect result set to return all of the possible
values.
> 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