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