[ 
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: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to