Olivier Michallat created CASSANDRA-9198:
--------------------------------------------

             Summary: Deleting from an empty list produces an error
                 Key: CASSANDRA-9198
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9198
             Project: Cassandra
          Issue Type: Bug
          Components: API
            Reporter: Olivier Michallat
            Priority: Minor


While deleting an element from a list that does not contain it is a no-op, 
deleting it from an empty list causes an error.
This edge case is a bit inconsistent, because it makes list deletion non 
idempotent:
{code}
cqlsh:test> create table foo (k int primary key, v list<int>);
cqlsh:test> insert into foo(k,v) values (1, [1,2]);

cqlsh:test> update foo set v = v - [1] where k = 1;
cqlsh:test> update foo set v = v - [1] where k = 1;

cqlsh:test> update foo set v = v - [2] where k = 1;
cqlsh:test> update foo set v = v - [2] where k = 1;
InvalidRequest: code=2200 [Invalid query] message="Attempted to delete an 
element from a list which is null"
{code}
With speculative retries coming to the drivers, idempotency becomes more 
important because it determines which query we might retry or not. So it would 
be better if deleting from an empty list succeeded.



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

Reply via email to