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

Benjamin Lerer commented on CASSANDRA-10532:
--------------------------------------------

I ran some tests and found that the following queries were not rejected and 
should be:
* {{DELETE static_col, value FROM %s WHERE pk = ? IF static_col = ?}}
* {{DELETE static_col FROM %s WHERE pk = ? AND ck = ? IF value = ?}}

Those problems are not caused by the patch but I think that we should 
nevertheless fix them within the context of this ticket.

It also seems to me that our error messages could be improved.
If we execute: {{DELETE static_col FROM %s WHERE ck = ? IF static_col = ?}} we 
get back an error message that tells us that {{all PRIMARY KEY columns}} must 
be restricted by equality. It is not true, only the partition keys columns must 
be restricted.
The error message for {{DELETE static_col FROM %s WHERE pk = ? IF value = ? AND 
static_col = ?}} is also not pointing the user in the right direction. The 
error message should say that it is not possible to use a condition on a non 
static column for deleting a static one.

Sorry for not noticing those problems earlier.  


 


> Allow LWT operation on static column with only partition keys
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-10532
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10532
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL
>         Environment: C* 2.2.0
>            Reporter: DOAN DuyHai
>            Assignee: Carl Yeksigian
>             Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>
>
> Schema
> {code:sql}
> CREATE TABLE IF NOT EXISTS achilles_embedded.entity_with_static_column(
> id bigint,
> uuid uuid,
> static_col text static,
> value text,
> PRIMARY KEY(id, uuid));
> {code}
> When trying to prepare the following query
> {code:sql}
> DELETE static_col FROM achilles_embedded.entity_with_static_column WHERE 
> id=:id_Eq IF static_col=:static_col;
> {code}
> I got the error *DELETE statements must restrict all PRIMARY KEY columns with 
> equality relations in order to use IF conditions, but column 'uuid' is not 
> restricted*
> Since the mutation only impacts the static column and the CAS check is on the 
> static column, it makes sense to provide only partition key



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to