Skip to content

Commit e549dd2

Browse files
authored
HIVE-29448: Remove calls to NOOP JaninoRelMetadataProvider#register method (#6307)
1 parent 38a9635 commit e549dd2

File tree

3 files changed

+6
-31
lines changed

3 files changed

+6
-31
lines changed

ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveDefaultRelMetadataProvider.java

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
*/
1818
package org.apache.hadoop.hive.ql.optimizer.calcite;
1919

20-
import java.util.List;
21-
22-
import org.apache.calcite.rel.RelNode;
2320
import org.apache.calcite.rel.metadata.ChainedRelMetadataProvider;
2421
import org.apache.calcite.rel.metadata.JaninoRelMetadataProvider;
2522
import org.apache.calcite.rel.metadata.RelMetadataProvider;
@@ -76,11 +73,11 @@ public class HiveDefaultRelMetadataProvider {
7673
private final RelMetadataProvider metadataProvider;
7774

7875

79-
public HiveDefaultRelMetadataProvider(HiveConf hiveConf, List<Class<? extends RelNode>> nodeClasses) {
80-
this.metadataProvider = init(hiveConf, nodeClasses);
76+
public HiveDefaultRelMetadataProvider(HiveConf hiveConf) {
77+
this.metadataProvider = init(hiveConf);
8178
}
8279

83-
private RelMetadataProvider init(HiveConf hiveConf, List<Class<? extends RelNode>> nodeClasses) {
80+
private RelMetadataProvider init(HiveConf hiveConf) {
8481
// Create cost metadata provider
8582
if (HiveConf.getVar(hiveConf, HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("tez")
8683
&& HiveConf.getBoolVar(hiveConf, HiveConf.ConfVars.HIVE_CBO_EXTENDED_COST_MODEL)) {
@@ -89,7 +86,7 @@ private RelMetadataProvider init(HiveConf hiveConf, List<Class<? extends RelNode
8986
hiveConf, HiveConf.ConfVars.MAPRED_MAX_SPLIT_SIZE);
9087

9188
// Create and return metadata provider
92-
JaninoRelMetadataProvider metadataProvider = JaninoRelMetadataProvider.of(
89+
return JaninoRelMetadataProvider.of(
9390
ChainedRelMetadataProvider.of(
9491
ImmutableList.of(
9592
HiveRelMdDistinctRowCount.SOURCE,
@@ -109,13 +106,6 @@ private RelMetadataProvider init(HiveConf hiveConf, List<Class<? extends RelNode
109106
HiveRelMdTableReferences.SOURCE,
110107
HiveRelMdAggregatedColumns.SOURCE,
111108
JaninoRelMetadataProvider.DEFAULT)));
112-
113-
if (nodeClasses != null) {
114-
// If classes were passed, pre-register them
115-
metadataProvider.register(nodeClasses);
116-
}
117-
118-
return metadataProvider;
119109
}
120110

121111
return DEFAULT;
@@ -124,14 +114,4 @@ private RelMetadataProvider init(HiveConf hiveConf, List<Class<? extends RelNode
124114
public RelMetadataProvider getMetadataProvider() {
125115
return metadataProvider;
126116
}
127-
128-
/**
129-
* This method can be called at startup time to pre-register all the
130-
* additional Hive classes (compared to Calcite core classes) that may
131-
* be visited during the planning phase.
132-
*/
133-
public static void initializeMetadataProviderClass(List<Class<? extends RelNode>> nodeClasses) {
134-
// This will register the classes in the default Hive implementation
135-
DEFAULT.register(nodeClasses);
136-
}
137117
}

ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@
173173
import org.apache.hadoop.hive.ql.optimizer.calcite.HiveDefaultRelMetadataProvider;
174174
import org.apache.hadoop.hive.ql.optimizer.calcite.HiveMaterializedViewASTSubQueryRewriteShuttle;
175175
import org.apache.hadoop.hive.ql.optimizer.calcite.HiveSqlTypeUtil;
176-
import org.apache.hadoop.hive.ql.optimizer.calcite.HiveTezModelRelMetadataProvider;
177176
import org.apache.hadoop.hive.ql.optimizer.calcite.RuleEventLogger;
178177
import org.apache.hadoop.hive.ql.optimizer.calcite.rules.CteRuleConfig;
179178
import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveAggregateSortLimitRule;
@@ -1632,7 +1631,7 @@ public RelNode apply(RelOptCluster cluster, RelOptSchema relOptSchema, SchemaPlu
16321631
calcitePlan.getCluster().getPlanner().setExecutor(executorProvider);
16331632

16341633
// Create and set MD provider
1635-
HiveDefaultRelMetadataProvider mdProvider = new HiveDefaultRelMetadataProvider(conf, HIVE_REL_NODE_CLASSES);
1634+
HiveDefaultRelMetadataProvider mdProvider = new HiveDefaultRelMetadataProvider(conf);
16361635
RelMetadataQuery.THREAD_PROVIDERS.set(JaninoRelMetadataProvider.of(mdProvider.getMetadataProvider()));
16371636
optCluster.setMetadataQuerySupplier(HiveRelMetadataQuery::new);
16381637
optCluster.invalidateMetadataQuery();
@@ -5337,10 +5336,6 @@ protected InputContext(RelDataType inputRowType, ImmutableMap<String, Integer> c
53375336
* and the field trimmer.
53385337
*/
53395338
public static void warmup() {
5340-
JaninoRelMetadataProvider.DEFAULT.register(HIVE_REL_NODE_CLASSES);
5341-
HiveDefaultRelMetadataProvider.initializeMetadataProviderClass(HIVE_REL_NODE_CLASSES);
5342-
HiveTezModelRelMetadataProvider.DEFAULT.register(HIVE_REL_NODE_CLASSES);
5343-
HiveMaterializationRelMetadataProvider.DEFAULT.register(HIVE_REL_NODE_CLASSES);
53445339
HiveRelFieldTrimmer.initializeFieldTrimmerClass(HIVE_REL_NODE_CLASSES);
53455340
}
53465341

ql/src/test/org/apache/hadoop/hive/ql/optimizer/calcite/TestCBORuleFiredOnlyOnce.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void testRuleFiredOnlyOnce() {
6969
RelOptCluster cluster = RelOptCluster.create(planner, rexBuilder);
7070

7171
// Create MD provider
72-
HiveDefaultRelMetadataProvider mdProvider = new HiveDefaultRelMetadataProvider(conf, null);
72+
HiveDefaultRelMetadataProvider mdProvider = new HiveDefaultRelMetadataProvider(conf);
7373
List<RelMetadataProvider> list = Lists.newArrayList();
7474
list.add(mdProvider.getMetadataProvider());
7575
planner.registerMetadataProviders(list);

0 commit comments

Comments
 (0)