[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] T Jake Luciani updated CASSANDRA-9198: -- Fix Version/s: (was: 2.1.5) 2.1.6 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 Assignee: Jeff Jirsa Priority: Minor Fix For: 2.1.6 Attachments: 9198-v2-2.1.txt, 9198-v2-trunk.txt, 9198.txt 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 listint); 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)
[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-9198: -- Reviewer: Benjamin Lerer Fix Version/s: (was: 3.0) 2.1.5 Assignee: Jeff Jirsa (was: Benjamin Lerer) 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 Assignee: Jeff Jirsa Priority: Minor Fix For: 2.1.5 Attachments: 9198.txt 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 listint); 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)
[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-9198: -- Attachment: 9198-v2-trunk.txt 9198-v2-2.1.txt 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 Assignee: Jeff Jirsa Priority: Minor Fix For: 2.1.5 Attachments: 9198-v2-2.1.txt, 9198-v2-trunk.txt, 9198.txt 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 listint); 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)
[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-9198: -- Attachment: (was: 9198.txt) 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 Assignee: Benjamin Lerer Priority: Minor Fix For: 3.0 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 listint); 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)
[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-9198: -- Attachment: 9198.txt Updated patch, allows idempotent deletes and corrects unit tests. 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 Assignee: Benjamin Lerer Priority: Minor Fix For: 3.0 Attachments: 9198.txt 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 listint); 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)
[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-9198: -- Attachment: 9198.txt Attaching patch that was previously option #2 on CASSANDRA-9077. Addresses this without modification: {noformat} cqlsh create keyspace IF NOT EXISTS test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; cqlsh USE test; cqlsh:test create table foo (k int primary key, v listint); 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; cqlsh:test cqlsh:test select * from foo; k | v ---+-- 1 | null (1 rows) {noformat} 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 Assignee: Benjamin Lerer Priority: Minor Fix For: 3.0 Attachments: 9198.txt 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 listint); 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)
[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-9198: -- Fix Version/s: (was: 2.1.5) 3.0 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 Assignee: Benjamin Lerer Priority: Minor Fix For: 3.0 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 listint); 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)
[jira] [Updated] (CASSANDRA-9198) Deleting from an empty list produces an error
[ https://issues.apache.org/jira/browse/CASSANDRA-9198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9198: --- Fix Version/s: 2.1.5 Assignee: Benjamin Lerer 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 Assignee: Benjamin Lerer Priority: Minor Fix For: 2.1.5 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 listint); 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)