This is an automated email from the ASF dual-hosted git repository.

zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new e549dd29ab4 HIVE-29448: Remove calls to NOOP 
JaninoRelMetadataProvider#register method (#6307)
e549dd29ab4 is described below

commit e549dd29ab400aa551cfb4e4bd57bf107d5e6d3f
Author: Stamatis Zampetakis <[email protected]>
AuthorDate: Thu Feb 12 09:18:55 2026 +0100

    HIVE-29448: Remove calls to NOOP JaninoRelMetadataProvider#register method 
(#6307)
---
 .../calcite/HiveDefaultRelMetadataProvider.java    | 28 ++++------------------
 .../hadoop/hive/ql/parse/CalcitePlanner.java       |  7 +-----
 .../calcite/TestCBORuleFiredOnlyOnce.java          |  2 +-
 3 files changed, 6 insertions(+), 31 deletions(-)

diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveDefaultRelMetadataProvider.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveDefaultRelMetadataProvider.java
index 1803e970633..71dbc21cacf 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveDefaultRelMetadataProvider.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveDefaultRelMetadataProvider.java
@@ -17,9 +17,6 @@
  */
 package org.apache.hadoop.hive.ql.optimizer.calcite;
 
-import java.util.List;
-
-import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.metadata.ChainedRelMetadataProvider;
 import org.apache.calcite.rel.metadata.JaninoRelMetadataProvider;
 import org.apache.calcite.rel.metadata.RelMetadataProvider;
@@ -76,11 +73,11 @@ public class HiveDefaultRelMetadataProvider {
   private final RelMetadataProvider metadataProvider;
 
 
-  public HiveDefaultRelMetadataProvider(HiveConf hiveConf, List<Class<? 
extends RelNode>> nodeClasses) {
-    this.metadataProvider = init(hiveConf, nodeClasses);
+  public HiveDefaultRelMetadataProvider(HiveConf hiveConf) {
+    this.metadataProvider = init(hiveConf);
   }
 
-  private RelMetadataProvider init(HiveConf hiveConf, List<Class<? extends 
RelNode>> nodeClasses) {
+  private RelMetadataProvider init(HiveConf hiveConf) {
     // Create cost metadata provider
     if (HiveConf.getVar(hiveConf, 
HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("tez")
         && HiveConf.getBoolVar(hiveConf, 
HiveConf.ConfVars.HIVE_CBO_EXTENDED_COST_MODEL)) {
@@ -89,7 +86,7 @@ private RelMetadataProvider init(HiveConf hiveConf, 
List<Class<? extends RelNode
           hiveConf, HiveConf.ConfVars.MAPRED_MAX_SPLIT_SIZE);
 
       // Create and return metadata provider
-      JaninoRelMetadataProvider metadataProvider = 
JaninoRelMetadataProvider.of(
+      return JaninoRelMetadataProvider.of(
           ChainedRelMetadataProvider.of(
               ImmutableList.of(
                   HiveRelMdDistinctRowCount.SOURCE,
@@ -109,13 +106,6 @@ private RelMetadataProvider init(HiveConf hiveConf, 
List<Class<? extends RelNode
                   HiveRelMdTableReferences.SOURCE,
                   HiveRelMdAggregatedColumns.SOURCE,
                   JaninoRelMetadataProvider.DEFAULT)));
-
-      if (nodeClasses != null) {
-        // If classes were passed, pre-register them
-        metadataProvider.register(nodeClasses);
-      }
-
-      return metadataProvider;
     }
 
     return DEFAULT;
@@ -124,14 +114,4 @@ private RelMetadataProvider init(HiveConf hiveConf, 
List<Class<? extends RelNode
   public RelMetadataProvider getMetadataProvider() {
     return metadataProvider;
   }
-
-  /**
-   * This method can be called at startup time to pre-register all the
-   * additional Hive classes (compared to Calcite core classes) that may
-   * be visited during the planning phase.
-   */
-  public static void initializeMetadataProviderClass(List<Class<? extends 
RelNode>> nodeClasses) {
-    // This will register the classes in the default Hive implementation
-    DEFAULT.register(nodeClasses);
-  }
 }
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index f1e9da25ebe..d9665b2417d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -173,7 +173,6 @@
 import 
org.apache.hadoop.hive.ql.optimizer.calcite.HiveDefaultRelMetadataProvider;
 import 
org.apache.hadoop.hive.ql.optimizer.calcite.HiveMaterializedViewASTSubQueryRewriteShuttle;
 import org.apache.hadoop.hive.ql.optimizer.calcite.HiveSqlTypeUtil;
-import 
org.apache.hadoop.hive.ql.optimizer.calcite.HiveTezModelRelMetadataProvider;
 import org.apache.hadoop.hive.ql.optimizer.calcite.RuleEventLogger;
 import org.apache.hadoop.hive.ql.optimizer.calcite.rules.CteRuleConfig;
 import 
org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveAggregateSortLimitRule;
@@ -1632,7 +1631,7 @@ public RelNode apply(RelOptCluster cluster, RelOptSchema 
relOptSchema, SchemaPlu
       calcitePlan.getCluster().getPlanner().setExecutor(executorProvider);
 
       // Create and set MD provider
-      HiveDefaultRelMetadataProvider mdProvider = new 
HiveDefaultRelMetadataProvider(conf, HIVE_REL_NODE_CLASSES);
+      HiveDefaultRelMetadataProvider mdProvider = new 
HiveDefaultRelMetadataProvider(conf);
       
RelMetadataQuery.THREAD_PROVIDERS.set(JaninoRelMetadataProvider.of(mdProvider.getMetadataProvider()));
       optCluster.setMetadataQuerySupplier(HiveRelMetadataQuery::new);
       optCluster.invalidateMetadataQuery();
@@ -5337,10 +5336,6 @@ protected InputContext(RelDataType inputRowType, 
ImmutableMap<String, Integer> c
    * and the field trimmer.
    */
   public static void warmup() {
-    JaninoRelMetadataProvider.DEFAULT.register(HIVE_REL_NODE_CLASSES);
-    
HiveDefaultRelMetadataProvider.initializeMetadataProviderClass(HIVE_REL_NODE_CLASSES);
-    HiveTezModelRelMetadataProvider.DEFAULT.register(HIVE_REL_NODE_CLASSES);
-    
HiveMaterializationRelMetadataProvider.DEFAULT.register(HIVE_REL_NODE_CLASSES);
     HiveRelFieldTrimmer.initializeFieldTrimmerClass(HIVE_REL_NODE_CLASSES);
   }
 
diff --git 
a/ql/src/test/org/apache/hadoop/hive/ql/optimizer/calcite/TestCBORuleFiredOnlyOnce.java
 
b/ql/src/test/org/apache/hadoop/hive/ql/optimizer/calcite/TestCBORuleFiredOnlyOnce.java
index 25e20b6167f..8ccc8d4b1eb 100644
--- 
a/ql/src/test/org/apache/hadoop/hive/ql/optimizer/calcite/TestCBORuleFiredOnlyOnce.java
+++ 
b/ql/src/test/org/apache/hadoop/hive/ql/optimizer/calcite/TestCBORuleFiredOnlyOnce.java
@@ -69,7 +69,7 @@ public void testRuleFiredOnlyOnce() {
     RelOptCluster cluster = RelOptCluster.create(planner, rexBuilder);
 
     // Create MD provider
-    HiveDefaultRelMetadataProvider mdProvider = new 
HiveDefaultRelMetadataProvider(conf, null);
+    HiveDefaultRelMetadataProvider mdProvider = new 
HiveDefaultRelMetadataProvider(conf);
     List<RelMetadataProvider> list = Lists.newArrayList();
     list.add(mdProvider.getMetadataProvider());
     planner.registerMetadataProviders(list);

Reply via email to