cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Lerer (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-13197) +=/-= shortcut syntax bugs/inconsistencies
Date Mon, 06 Mar 2017 14:55:32 GMT

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

Benjamin Lerer commented on CASSANDRA-13197:
--------------------------------------------

I do not think it really make sense to change that behavior for the moment. It is the kind
of nasty breaking changes are they are really easy to miss and can easily impact users.

In my opinion we should just improve the error messages for (2) and (3).

> +=/-= shortcut syntax bugs/inconsistencies
> ------------------------------------------
>
>                 Key: CASSANDRA-13197
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13197
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Kishan Karunaratne
>            Assignee: Alex Petrov
>
> CASSANDRA-12232 introduced (+=/-=) shortcuts for counters and collection types. I ran
into some bugs/consistencies.
> Given the schema:
> {noformat}
> CREATE TABLE simplex.collection_table (k int PRIMARY KEY, d_l List<int>, d_s Set<int>,
d_m Map<int,int>, d_t Tuple<int>);
> {noformat}
> 1) Using -= on a list column removes all elements that match the value, instead of the
first or last occurrence of it. Is this expected?
> {noformat}
> Given d_l = [0, 1, 2, 1, 1]
> UPDATE collection_table SET d_l -= [1] WHERE k=0;
> yields 
> [0, 2]
> {noformat}
> 2) I can't seem to remove a map key/value pair:
> {noformat}
> Given d_m = {0: 0, 1: 1}
> UPDATE collection_table SET d_m -= {1:1} WHERE k=0;
> yields
> Invalid map literal for d_m of type frozen<set<int>>
> {noformat}
> However {noformat}UPDATE collection_table SET d_m -= {1} WHERE k=0;{noformat} does work.
> 3) Tuples are immutable so it make sense that +=/-= doesn't apply. However the error
message could be better, now that other collection types are allowed:
> {noformat}
> UPDATE collection_table SET d_t += (1) WHERE k=0;
> yields
> Invalid operation (d_t = d_t + (1)) for non counter column d_t
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message