[
https://issues.apache.org/jira/browse/CASSANDRA-10537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17471853#comment-17471853
]
Benjamin Lerer edited comment on CASSANDRA-10537 at 1/10/22, 10:41 AM:
-----------------------------------------------------------------------
{quote}Modifications are quite light so i haven't started the refactoring of
ColumnCondition mentioned by Alex Petrov (even if i'm agree on its
benefits).{quote}
The comment from [~ifesdjeen] is an old one. We did refactor the code since
then :-)
Thanks a lot for the patch :-). I will review it.
was (Author: blerer):
{quote}Modifications are quite light so i haven't started the refactoring of
ColumnCondition mentioned by Alex Petrov (even if i'm agree on its
benefits).{quote}
The comment from [~ifesdjeen] is an old one. We did refactor the code since
then :-)
> CONTAINS and CONTAINS KEY support for Lightweight Transactions
> --------------------------------------------------------------
>
> Key: CASSANDRA-10537
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10537
> Project: Cassandra
> Issue Type: Improvement
> Components: Legacy/CQL
> Reporter: Nimi Wariboko Jr.
> Assignee: ROCHETEAU Antoine
> Priority: Normal
> Labels: AdventCalendar2021, CQL, lhf
> Fix For: 4.x
>
>
> Conditional updates currently do not support CONTAINS and CONTAINS KEY
> conditions. Queries such as
> {{UPDATE mytable SET somefield = 4 WHERE pk = 'pkv' IF set_column CONTAINS
> 5;}}
> are not possible.
> Would it also be possible to support the negation of these (ex. testing that
> a value does not exist inside a set)?
> +Additional Information for newcomers:+
> Negation should not be supported as for the moment we do not support it
> within restrictions either.
> One way to approch this bug is to use test driven development. You can modify
> {{InsertUpdateIfConditionCollectionsTest}} to allow CONTAINS and CONTAINS KEY
> operators and go through the different failures.
> The following changes will need to be done.
> * The {{columnCondition}} rule from the ANTLR {{Parser.g}} file should be
> updated to accept {{containsOperator}}.
> * {{ColumnCondition.Raw#prepareTerms}} should be modified in the case where
> the operator is a CONTAINS or CONTAINS KEY as the {{receiver}} is not the
> collection but keys or values of the collection. Look at
> {{SingleColumnRelation#makeCollectionReceiver}}.
> * {{ColumnCollection.MultiCellCollectionBound#valueAppliesTo}} will need to
> be changed for {{Map}} and {{Set}} to process CONTAINS operators.
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]