[ https://issues.apache.org/jira/browse/CASSANDRA-17857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Capwell updated CASSANDRA-17857: -------------------------------------- Bug Category: Parent values: Correctness(12982)Level 1 values: Unrecoverable Corruption / Loss(13161) Complexity: Low Hanging Fruit Discovered By: Code Inspection Fix Version/s: 4.1.x Severity: Critical Status: Open (was: Triage Needed) > 4.1's upsert with adder support is not consistent with numbers and strings > -------------------------------------------------------------------------- > > Key: CASSANDRA-17857 > URL: https://issues.apache.org/jira/browse/CASSANDRA-17857 > Project: Cassandra > Issue Type: Bug > Components: CQL/Semantics, Feature/Lightweight Transactions > Reporter: David Capwell > Assignee: David Capwell > Priority: Normal > Fix For: 4.1.x > > > In 4.1 UPDATE name = name + offset support got extended to numbers and > strings (not just counters) but the behavior isn’t consistent > Number: throws a error due to Int32Type.add(null, 42) failing > String: returns the non-null updated values > What Postgres does is keeps the value null > {code} > postgres=# create table x (pk int PRIMARY KEY, a int, b text); > CREATE TABLE > postgres=# insert into x (pk, a, b) values(0, null, null); > INSERT 0 1 > postgres=# UPDATE x SET a = a + 1 WHERE pk = 0; > UPDATE 1 > postgres=# select * from x; > pk | a | b > ----+---+--- > 0 | | > (1 row) > postgres=# UPDATE x SET b = b + 'one' WHERE pk = 0; > ERROR: operator does not exist: text + unknown > LINE 1: UPDATE x SET b = b + 'one' WHERE pk = 0; > ^ > HINT: No operator matches the given name and argument types. You might need > to add explicit type casts. > postgres=# UPDATE x SET b = b + CAST('one' as text) WHERE pk = 0; > ERROR: operator does not exist: text + text > LINE 1: UPDATE x SET b = b + CAST('one' as text) WHERE pk = 0; > ^ > HINT: No operator matches the given name and argument types. You might need > to add explicit type casts. > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org