[
https://issues.apache.org/jira/browse/CASSANDRA-6075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14139340#comment-14139340
]
Tyler Hobbs commented on CASSANDRA-6075:
----------------------------------------
If I specify the partition key items out of order, I get a somewhat confusing
type error message:
{noformat}
cqlsh:ks1> create table foo (a int, b text, c int, d int, PRIMARY KEY ((a, b,
c)));
cqlsh:ks1> select * from foo WHERE token(a, c, b) > token(0, 0, 'a');
Bad Request: Type error: 0 cannot be passed as argument 1 of function token of
type text
{noformat}
We need to do the order check prior to the type check or find a way to do the
type check properly.
> The token function should allow column identifiers in the correct order only
> ----------------------------------------------------------------------------
>
> Key: CASSANDRA-6075
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6075
> Project: Cassandra
> Issue Type: Bug
> Environment: Cassandra 1.2.9
> Reporter: Michaël Figuière
> Assignee: Benjamin Lerer
> Priority: Minor
> Labels: cql
> Fix For: 2.0.11
>
> Attachments: CASSANDRA-2.1-6075.txt, CASSANDRA-6075.txt
>
>
> Given the following table:
> {code}
> CREATE TABLE t1 (a int, b text, PRIMARY KEY ((a, b)));
> {code}
> The following request returns an error in cqlsh as literal arguments order is
> incorrect:
> {code}
> SELECT * FROM t1 WHERE token(a, b) > token('s', 1);
> Bad Request: Type error: 's' cannot be passed as argument 0 of function token
> of type int
> {code}
> But surprisingly if we provide the column identifier arguments in the wrong
> order no error is returned:
> {code}
> SELECT * FROM t1 WHERE token(a, b) > token(1, 'a'); // correct order is valid
> SELECT * FROM t1 WHERE token(b, a) > token(1, 'a'); // incorrect order is
> valid as well
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)