[ 
https://issues.apache.org/jira/browse/CASSANDRA-19341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-19341:
-----------------------------------------
    Description: 
The {{Relation}} and {{Restriction}} hierarchy have been designed when C* was 
only supporting a limited amount of operators and columns expressions (single 
column, multi-column and token expressions). Over time they have grown in 
complexity making the code harder to understand and modify and error prone. 
Their design is also resulting in unnecessary limitations that could be easily 
lifted, like the ability to accept different predicates on the same column.

Today adding a new operator requires the addition of a lot of glue code and 
surgical changes accross the CQL layer. Making patch for features such as 
CASSANDRA-18584 much complex than it should be.

The goal of this ticket is to simplify the {{Relation}} and {{Restriction}} 
hierarchies and modify operator  class so that adding new operators requires 
only changes to the {{Operator}} class and ANTLR file.           

  was:
The {{Relation}} and {{Restriction}} hierarchy have been designed when C* was 
only supporting a limited amount of operators and columns expressions (single 
column, multi-column and token expressions). Over time they have grown in 
complexity making the code harder to understand and modify and error prone. 
Their design is also resulting in unnecessary limitations that could be easily 
lifted, like the ability to accept different predicates on the same column.

Today adding a new operator requires the addition of a lot of glue code and 
chirurgical changes accross the CQL layer. Making patch for features such as 
CASSANDRA-18584 much complex than it should be.

The goal of this ticket is to simplify the {{Relation}} and {{Restriction}} 
hierarchies and modify operator  class so that adding new operators requires 
only changes to the {{Operator}} class and ANTLR file.           


> Relation and Restriction hierachies are too complex and error prone
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-19341
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19341
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL/Interpreter
>            Reporter: Benjamin Lerer
>            Assignee: Benjamin Lerer
>            Priority: Normal
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The {{Relation}} and {{Restriction}} hierarchy have been designed when C* was 
> only supporting a limited amount of operators and columns expressions (single 
> column, multi-column and token expressions). Over time they have grown in 
> complexity making the code harder to understand and modify and error prone. 
> Their design is also resulting in unnecessary limitations that could be 
> easily lifted, like the ability to accept different predicates on the same 
> column.
> Today adding a new operator requires the addition of a lot of glue code and 
> surgical changes accross the CQL layer. Making patch for features such as 
> CASSANDRA-18584 much complex than it should be.
> The goal of this ticket is to simplify the {{Relation}} and {{Restriction}} 
> hierarchies and modify operator  class so that adding new operators requires 
> only changes to the {{Operator}} class and ANTLR file.           



--
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