[
https://issues.apache.org/jira/browse/CALCITE-7224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18029907#comment-18029907
]
Mihai Budiu commented on CALCITE-7224:
--------------------------------------
The same way you are doing it already: checking the kind and the operands, in
this case.
I would create an OptimizeIdempotentCalls Shuttle for this; the knowledge about
which functions are idempotent is confined to the shuttle, and not the the
functions.
> 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)