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

Mihai Budiu commented on CALCITE-7224:
--------------------------------------

I think that centralizing the knowledge is the right way to structure the 
software.
As I said elsewhere, you cannot add a new property to every function for every 
kind of interesting behavior they may have. Then each function would have 
hundreds of properties "commutative", "associative", "idempotent", "strong", 
etc. The information has to be centralized in a class that knows about the 
property.

> Refactor function property system to use a unified flag field
> -------------------------------------------------------------
>
>                 Key: CALCITE-7224
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7224
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.40.0
>            Reporter: Zhen Chen
>            Priority: Minor
>
> Currently, SqlOperator and its related classes use individual boolean fields 
> (e.g., isDeterministic, isDynamic, maybe isIdempotent) to represent various 
> function properties. This approach has several drawbacks as the number of 
> properties grows:
> * ​​Maintenance Overhead:​​ Adding a new property requires adding a new 
> method and field across multiple classes.
> * ​​API Bloat:​​ The interface becomes cluttered with numerous getter methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to