cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Lerer (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-8781) SELECT * FROM cf WHERE (id=1) AND (id=1); error
Date Wed, 11 Feb 2015 13:07:12 GMT


Benjamin Lerer commented on CASSANDRA-8781:

In order to support the specified query we need to support multiple restrictions on the same
column. So queries like:
SELECT * FROM cf WHERE id IN (1, 2, 3) AND id = 2;
SELECT * FROM cf WHERE id IN (1, 2, 3) AND id > 2 AND id < 15;
SELECT * FROM cf WHERE id = 0 AND (clustering_0) = (12) AND (clustering_0, clustering_1) >
(0, 5);
should also be supported.

I agree that it will be nice for convenience but on the other hand it is a major change in
the CQL layer that will add some significant complexity for little benefits. Therefore, I
would be more in favor of closing that ticket as 'later'. 

Regarding the initial problem, I think that the problem should probably be solved within the
DBAL framework. A query like: {{SELECT * FROM cf WHERE id=1 AND id =1;}} look quite suspicious.

> SELECT * FROM cf WHERE (id=1) AND (id=1); error
> -----------------------------------------------
>                 Key: CASSANDRA-8781
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sergey Nagaytsev
>            Assignee: Benjamin Lerer
>            Priority: Minor
> Error: CQLSTATE[HY000] [2] id cannot be restricted by more than one relation if it includes
an Equal
> Actual query is with UUID type, 1's are just for short. The column 'id' is the only primary
key in column family.
> The expression is perfectly logically valid and resolves to one or none record.
> It was generated by framework's DBAL as the result of narrowing down the query. Fixing
it on application side will take deep heavy rewrite of all DB libs in all languages.

This message was sent by Atlassian JIRA

View raw message