diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java index 3e4584d..cac98c9 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java @@ -72,16 +72,6 @@ public void initialize(HiveConf hiveConf) { // we are translating Calcite operators into Hive operators. transformations.add(new HiveOpConverterPostProc()); - // Add the transformation that computes the lineage information. - Set postExecHooks = Sets.newHashSet( - Splitter.on(",").trimResults().omitEmptyStrings().split( - Strings.nullToEmpty(HiveConf.getVar(hiveConf, HiveConf.ConfVars.POSTEXECHOOKS)))); - if (postExecHooks.contains("org.apache.hadoop.hive.ql.hooks.PostExecutePrinter") - || postExecHooks.contains("org.apache.hadoop.hive.ql.hooks.LineageLogger") - || postExecHooks.contains("org.apache.atlas.hive.hook.HiveHook")) { - transformations.add(new Generator()); - } - // Try to transform OR predicates in Filter into simpler IN clauses first if (HiveConf.getBoolVar(hiveConf, HiveConf.ConfVars.HIVEPOINTLOOKUPOPTIMIZER) && !pctx.getContext().isCboSucceeded()) { @@ -220,6 +210,17 @@ public void initialize(HiveConf hiveConf) { if (HiveConf.getFloatVar(hiveConf, HiveConf.ConfVars.HIVELIMITPUSHDOWNMEMORYUSAGE) > 0) { transformations.add(new LimitPushdownOptimizer()); } + + // Add the transformation that computes the lineage information. + Set postExecHooks = Sets.newHashSet( + Splitter.on(",").trimResults().omitEmptyStrings().split( + Strings.nullToEmpty(HiveConf.getVar(hiveConf, HiveConf.ConfVars.POSTEXECHOOKS)))); + if (postExecHooks.contains("org.apache.hadoop.hive.ql.hooks.PostExecutePrinter") + || postExecHooks.contains("org.apache.hadoop.hive.ql.hooks.LineageLogger") + || postExecHooks.contains("org.apache.atlas.hive.hook.HiveHook")) { + transformations.add(new Generator()); + } + if(HiveConf.getBoolVar(hiveConf, HiveConf.ConfVars.HIVEOPTIMIZEMETADATAQUERIES)) { transformations.add(new StatsOptimizer()); }