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

Tyler Hobbs commented on CASSANDRA-7248:
----------------------------------------

bq.  That is, if we do CASSANDRA-6875, we will have TupleType, it will be part 
of the native protocol and it will be a type visible to users since they that 
will be a type of bind variables. To take the Java driver as example, this 
imply that we will need to have a 'tuple type' in DataType and will need to 
introduce a new "tuple" class for tuple values so user can pass them for 
CASSANDRA-6875.

Ah, that's a fair point.  With the python driver users would be totally unaware 
of TupleType, so I didn't think about that.  With that in mind, making the 
tuple type externally visible seems more reasonable to me.

> Tuple type
> ----------
>
>                 Key: CASSANDRA-7248
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7248
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>              Labels: cql3
>             Fix For: 2.1 rc1
>
>
> For CASSANDRA-6875 we need to be able to talk about tuples values and types 
> (for prepared variables). Since we need it there, clients will need to 
> support them anyway and so I think it would be a lot cleaner to start 
> supporting those more generally. Besides, having tuples is a relatively 
> simple and natural extension to what we have. I'll note in particular that 
> tuple have a close relationship to user type in the sense that a tuple will 
> be really just like an anonymous with no name for the fields and in 
> particular a tuple value will be the same than a user type value.
> The syntax would simply look like that:
> {noformat}
> CREATE TABLE foo (
>     k int PRIMARY KEY,
>     v tuple<int, text, float>
> )
> INSERT INTO foo(k, v) VALUES(0, (3, 'bar', 2.1));
> {noformat}
> We can also add projections in selects if we want:
> {noformat}
> SELECT v[0], v[2] FROM foo WHERE k = 0;
> {noformat}
> but that can come later (after all, we still don't have projections for 
> collections and it's not a big deal).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to