[
https://issues.apache.org/jira/browse/CASSANDRA-18813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17765520#comment-17765520
]
Benjamin Lerer commented on CASSANDRA-18813:
--------------------------------------------
I updated the patch which now:
* removes the {{MultiItemTerminal}} and {{MultiColumnRaw}} interfaces
* represents IN bind marker as {{Terms}} instead of having 2 different
representations (a list of terms and a single {{MultiItemTerminal}}).
* replaces the {{AbstractMarker}} hierachy by the {{Marker}} class
* introduces a new {{MultiElementType}} that becomes a super class of all the
{{CollectionTypes}}, {{TupleType}}, {{UserType}} and {{VectorType}}
(standardizing the {{pack}} and {{unpack}} method names and their modifiers)
* It replaces the {{Value}} and {{DelayedValue}} implementations for the
{{Lists}}, {{Sets}}, {{Maps}}, {{Tuples}}, {{UserTypes}} and {{Vectors}}
classes by the {{MultiElements}} Value and {{DelayedValue}} classes.
CI [Java
11|https://app.circleci.com/pipelines/github/blerer/cassandra/358/workflows/efc7db24-d110-4f45-a273-c71e685b39a5]
and [Java
17|https://app.circleci.com/pipelines/github/blerer/cassandra/358/workflows/deec9a8e-132c-484c-b8dc-496d4a837072]
> Simplify the bind marker and Term logic
> ---------------------------------------
>
> Key: CASSANDRA-18813
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18813
> Project: Cassandra
> Issue Type: Improvement
> Components: CQL/Interpreter
> Reporter: Benjamin Lerer
> Assignee: Benjamin Lerer
> Priority: Normal
> Fix For: 5.x
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> The current logic around {{Term}} and {{Terms}} classes is confusing
> specially with {{MultiItemTerminal}} and {{MultiColumnRaw}} that are used to
> handle different use cases that could be handled simply with the {{Term}}
> interface.
> On top of that IN marker add to the confusion because the are represented as
> single Term where in practice they are a set of terms. Representing them as a
> {{Terms}} could simplify the way we handle IN restrictions.
> The goal of this ticket is:
> * to refactor the {{Term}} and {{Terms}} interfaces to simplify the logic
> * Represents IN bind marker as {{Terms}} instead of having 2 different
> representations (a list of terms and a single {{MultiItemTerminal}}.
> * Simplify the {{AbstractMarker}} hierachy
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]