Sergey Nuyanzin created FLINK-30847:
---------------------------------------

             Summary: Some rel rules vioaltes 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


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)

Reply via email to