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