[
https://issues.apache.org/jira/browse/FLINK-30847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Nuyanzin updated FLINK-30847:
------------------------------------
Summary: Some rel rules violate Calcite guidance rule about instance
creation (was: Some rel rules vioaltes Calcite guidance rule about instance
creation)
> Some rel rules violate Calcite guidance rule about instance creation
> --------------------------------------------------------------------
>
> Key: FLINK-30847
> URL: https://issues.apache.org/jira/browse/FLINK-30847
> Project: Flink
> Issue Type: Technical Debt
> Components: Table SQL / Planner
> Affects Versions: 1.17.0
> Reporter: Sergey Nuyanzin
> Priority: Minor
>
> This is a follow up ticket based on review
> [https://github.com/apache/flink/pull/21519#pullrequestreview-1267744410]
>
> Calcite guidance rule 5 says that
> {quote}
> 5. Do not create an INSTANCE constant inside your rule. Instead, create a
> named instance of your rule, with default configuration, in a holder class.
> The holder class must not be a sub-class of RelOptRule (otherwise cyclic
> class-loading issues may arise). Generally it will be called XxxRules, for
> example CsvRules. The rule instance is named after your rule, and is based on
> the default config (Config.DEFAULT, or DEFAULT_CONFIG for converter rules):
> {code:java}
> /** Rule that matches a {@code Project} on a
> * {@code CsvTableScan} and pushes down projects if possible. */
> public static final CsvProjectTableScanRule PROJECT_SCAN =
> CsvProjectTableScanRule.Config.DEFAULT.toRule();
> {code}
> {quote}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)