From f169f13dc5fce1d6122821ea2a9fc18345dd609f Mon Sep 17 00:00:00 2001 From: Ashutosh Chauhan Date: Fri, 29 Jan 2016 15:32:23 -0800 Subject: [PATCH] HIVE-12956 : run CBO in tests with mapred.mode=strict --- .../java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) 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 3b3e840..e2d404b 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 @@ -438,13 +438,8 @@ boolean canCBOHandleAst(ASTNode ast, QB qb, PreCboCtx cboCtx) { */ static String canHandleQbForCbo(QueryProperties queryProperties, HiveConf conf, boolean topLevelQB, boolean verbose, QB qb) { - boolean isInTest = conf.getBoolVar(ConfVars.HIVE_IN_TEST); - // TODO: HIVEMAPREDMODE is deprecated. Why does this test-only exception exist? - boolean isStrictTest = isInTest - && "strict".equals(HiveConf.getVar(conf, ConfVars.HIVEMAPREDMODE)); - if (!isStrictTest - && !queryProperties.hasClusterBy() && !queryProperties.hasDistributeBy() + if (!queryProperties.hasClusterBy() && !queryProperties.hasDistributeBy() && !queryProperties.hasSortBy() && !queryProperties.hasPTF() && !queryProperties.usesScript() && !queryProperties.hasMultiDestQuery() && !queryProperties.hasLateralViews()) { // Ok to run CBO. @@ -454,8 +449,6 @@ static String canHandleQbForCbo(QueryProperties queryProperties, HiveConf conf, // Not ok to run CBO, build error message. String msg = ""; if (verbose) { - if (isStrictTest) - msg += "is in test running in strict mode (deprecated); "; if (queryProperties.hasClusterBy()) msg += "has cluster by; "; if (queryProperties.hasDistributeBy()) @@ -1073,7 +1066,7 @@ private RelNode applyPreJoinOrderingTransforms(RelNode basePlan, RelMetadataProv perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, "Calcite: Prejoin ordering transformation, factor out common filter elements and separating deterministic vs non-deterministic UDF"); - // 3. Run exhaustive PPD, add not null filters, transitive inference, + // 3. Run exhaustive PPD, add not null filters, transitive inference, // constant propagation, constant folding perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER); basePlan = hepPlan(basePlan, true, mdProvider, executorProvider, HepMatchOrder.BOTTOM_UP, -- 1.7.12.4 (Apple Git-37)