[
https://issues.apache.org/jira/browse/CASSANDRA-17857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17598110#comment-17598110
]
David Capwell commented on CASSANDRA-17857:
-------------------------------------------
Mail thread on this topic:
https://lists.apache.org/thread/jy8rodzhxz6zrb4k6trnho2w3bl3kxf1
> upsert with adder support is not consistent with numbers and strings in LWT
> ---------------------------------------------------------------------------
>
> 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
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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: [email protected]
For additional commands, e-mail: [email protected]