diff --git a/itests/hive-blobstore/src/test/results/clientpositive/insert_overwrite_directory.q.out b/itests/hive-blobstore/src/test/results/clientpositive/insert_overwrite_directory.q.out index 8581a17209..c59b57c944 100644 --- a/itests/hive-blobstore/src/test/results/clientpositive/insert_overwrite_directory.q.out +++ b/itests/hive-blobstore/src/test/results/clientpositive/insert_overwrite_directory.q.out @@ -62,6 +62,8 @@ PREHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE DIRECTORY '### test.blobstore. PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE DIRECTORY '### test.blobstore.path ###/table1.dir/' SELECT * FROM table1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `id`, `key` +FROM `default`.`table1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-6 depends on stages: Stage-1 , consists of Stage-3, Stage-2, Stage-4 diff --git a/itests/hive-blobstore/src/test/results/clientpositive/write_final_output_blobstore.q.out b/itests/hive-blobstore/src/test/results/clientpositive/write_final_output_blobstore.q.out index 73fe3f98c8..b6fff6048f 100644 --- a/itests/hive-blobstore/src/test/results/clientpositive/write_final_output_blobstore.q.out +++ b/itests/hive-blobstore/src/test/results/clientpositive/write_final_output_blobstore.q.out @@ -28,6 +28,10 @@ PREHOOK: query: EXPLAIN EXTENDED FROM hdfs_table INSERT OVERWRITE TABLE blobstor PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED FROM hdfs_table INSERT OVERWRITE TABLE blobstore_table SELECT hdfs_table.key GROUP BY hdfs_table.key ORDER BY hdfs_table.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` +FROM `default`.`hdfs_table` +GROUP BY `key` +ORDER BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -299,6 +303,10 @@ PREHOOK: query: EXPLAIN EXTENDED FROM hdfs_table INSERT OVERWRITE TABLE blobstor PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED FROM hdfs_table INSERT OVERWRITE TABLE blobstore_table SELECT hdfs_table.key GROUP BY hdfs_table.key ORDER BY hdfs_table.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` +FROM `default`.`hdfs_table` +GROUP BY `key` +ORDER BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Context.java b/ql/src/java/org/apache/hadoop/hive/ql/Context.java index 3004f9c70c..b4d5806d4e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/Context.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/Context.java @@ -74,6 +74,7 @@ * each query should call clear() at end of use to remove temporary folders */ public class Context { + private boolean isHDFSCleanup; private Path resFile; private Path resDir; @@ -103,6 +104,7 @@ protected ExplainConfiguration explainConfig = null; protected String cboInfo; protected boolean cboSucceeded; + protected String optimizedSql; protected String cmd = ""; private TokenRewriteStream tokenRewriteStream; // Holds the qualified name to tokenRewriteStream for the views @@ -1003,6 +1005,14 @@ public void setCboInfo(String cboInfo) { this.cboInfo = cboInfo; } + public String getOptimizedSql() { + return this.optimizedSql; + } + + public void setOptimizedSql(String newSql) { + this.optimizedSql = newSql; + } + public boolean isCboSucceeded() { return cboSucceeded; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java index bf4d29cba7..6fe186857e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -678,7 +678,8 @@ public void run() { schema = getSchema(sem, conf); plan = new QueryPlan(queryStr, sem, queryDisplay.getQueryStartTime(), queryId, queryState.getHiveOperation(), schema); - + // save the optimized sql for the explain + plan.setOptimizedQueryString(ctx.getOptimizedSql()); conf.set("mapreduce.workflow.id", "hive_" + queryId); conf.set("mapreduce.workflow.name", queryStr); @@ -1007,7 +1008,7 @@ private String getExplainOutput(BaseSemanticAnalyzer sem, QueryPlan plan, PrintStream ps = new PrintStream(baos); try { List> rootTasks = sem.getAllRootTasks(); - task.getJSONPlan(ps, rootTasks, sem.getFetchTask(), false, true, true); + task.getJSONPlan(ps, rootTasks, sem.getFetchTask(), false, true, true, plan.getOptimizedQueryString()); ret = baos.toString(); } catch (Exception e) { LOG.warn("Exception generating explain output: " + e, e); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/QueryPlan.java b/ql/src/java/org/apache/hadoop/hive/ql/QueryPlan.java index 79e938aebd..8943bc74c4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/QueryPlan.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/QueryPlan.java @@ -74,6 +74,7 @@ private String queryString; + private String optimizedQueryString; private ArrayList> rootTasks; private FetchTask fetchTask; @@ -741,6 +742,14 @@ public void setQueryString(String queryString) { this.queryString = queryString; } + public String getOptimizedQueryString() { + return this.optimizedQueryString; + } + + public void setOptimizedQueryString(String optimizedQueryString) { + this.optimizedQueryString = optimizedQueryString; + } + public org.apache.hadoop.hive.ql.plan.api.Query getQuery() { return query; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java index 34da025b63..752c3f30a4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java @@ -217,11 +217,11 @@ public JSONObject getJSONLogicalPlan(PrintStream out, ExplainWork work) throws E public JSONObject getJSONPlan(PrintStream out, ExplainWork work) throws Exception { return getJSONPlan(out, work.getRootTasks(), work.getFetchTask(), - work.isFormatted(), work.getExtended(), work.isAppendTaskType()); + work.isFormatted(), work.getExtended(), work.isAppendTaskType(), work.getOptimizedSQL()); } public JSONObject getJSONPlan(PrintStream out, List> tasks, Task fetchTask, - boolean jsonOutput, boolean isExtended, boolean appendTaskType) throws Exception { + boolean jsonOutput, boolean isExtended, boolean appendTaskType, String optimizedSQL) throws Exception { // If the user asked for a formatted output, dump the json output // in the output stream @@ -231,6 +231,15 @@ public JSONObject getJSONPlan(PrintStream out, List> tasks, Task fetc out = null; } + if (optimizedSQL != null) { + if (jsonOutput) { + outJSONObject.put("optimizedSQL", optimizedSQL); + } else { + out.print("OPTIMIZED SQL: "); + out.println(optimizedSQL); + } + } + List ordered = StageIDsRearranger.getExplainOrder(conf, tasks); if (fetchTask != null) { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java index 0ae60b5792..fa69f13965 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java @@ -266,7 +266,8 @@ public void run() { plan.getFetchTask(),// FetchTask null,// analyzer config, //explainConfig - null// cboInfo + null, // cboInfo + plan.getOptimizedQueryString() // optimizedSQL ); @SuppressWarnings("unchecked") ExplainTask explain = (ExplainTask) TaskFactory.get(work); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java index f463437fae..155b2be7f8 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java @@ -479,7 +479,8 @@ private JSONObject getExplainPlan(QueryPlan plan, HiveConf conf, HookContext hoo plan.getFetchTask(), // FetchTask null, // analyzer config, // explainConfig - null // cboInfo + null, // cboInfo, + plan.getOptimizedQueryString() ); ExplainTask explain = (ExplainTask) TaskFactory.get(work, conf); explain.initialize(hookContext.getQueryState(), plan, null, null); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java index 98c9ce91eb..5c9162f1e1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java @@ -339,13 +339,12 @@ private static RelNode createMaterializedViewScan(HiveConf conf, Table viewTable } // 2. Build RelOptAbstractTable - String fullyQualifiedTabName = viewTable.getDbName(); - if (fullyQualifiedTabName != null && !fullyQualifiedTabName.isEmpty()) { - fullyQualifiedTabName = fullyQualifiedTabName + "." + viewTable.getTableName(); - } - else { - fullyQualifiedTabName = viewTable.getTableName(); + List fullyQualifiedTabName = new ArrayList<>(); + if (viewTable.getDbName() != null && !viewTable.getDbName().isEmpty()) { + fullyQualifiedTabName.add(viewTable.getDbName()); } + fullyQualifiedTabName.add(viewTable.getTableName()); + RelNode tableRel; // 3. Build operator diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java index 6cc6d02b14..9efc692f17 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java @@ -18,19 +18,25 @@ package org.apache.hadoop.hive.ql.optimizer.calcite; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import org.apache.calcite.linq4j.tree.Expression; import org.apache.calcite.plan.RelOptAbstractTable; import org.apache.calcite.plan.RelOptSchema; +import org.apache.calcite.plan.RelOptTable; import org.apache.calcite.plan.RelOptUtil.InputFinder; +import org.apache.calcite.prepare.RelOptTableImpl; import org.apache.calcite.rel.RelCollation; import org.apache.calcite.rel.RelCollationTraitDef; import org.apache.calcite.rel.RelDistribution; +import org.apache.calcite.rel.RelDistributions; import org.apache.calcite.rel.RelFieldCollation; import org.apache.calcite.rel.RelFieldCollation.Direction; import org.apache.calcite.rel.RelFieldCollation.NullDirection; @@ -41,6 +47,7 @@ import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeField; import org.apache.calcite.rex.RexNode; +import org.apache.calcite.schema.ColumnStrategy; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.mapping.IntPair; import org.apache.hadoop.hive.conf.HiveConf; @@ -76,7 +83,14 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; -public class RelOptHiveTable extends RelOptAbstractTable { +public class RelOptHiveTable implements RelOptTable { + + //~ Instance fields -------------------------------------------------------- + + private final RelOptSchema schema; + private final RelDataType rowType; + private final List qualifiedTblName; + private final String name; private final Table hiveTblMetadata; private final ImmutableList hiveNonPartitionCols; private final ImmutableList hivePartitionCols; @@ -97,12 +111,15 @@ protected static final Logger LOG = LoggerFactory.getLogger(RelOptHiveTable.class.getName()); - public RelOptHiveTable(RelOptSchema calciteSchema, String qualifiedTblName, + public RelOptHiveTable(RelOptSchema calciteSchema, List qualifiedTblName, RelDataType rowType, Table hiveTblMetadata, List hiveNonPartitionCols, List hivePartitionCols, List hiveVirtualCols, HiveConf hconf, Map partitionCache, Map colStatsCache, AtomicInteger noColsMissingStats) { - super(calciteSchema, qualifiedTblName, rowType); + this.schema = calciteSchema; + this.qualifiedTblName = ImmutableList.copyOf(qualifiedTblName); + this.name = this.qualifiedTblName.stream().collect(Collectors.joining(".")); + this.rowType = rowType; this.hiveTblMetadata = hiveTblMetadata; this.hiveNonPartitionCols = ImmutableList.copyOf(hiveNonPartitionCols); this.hiveNonPartitionColsMap = HiveCalciteUtil.getColInfoMap(hiveNonPartitionCols, 0); @@ -118,6 +135,42 @@ public RelOptHiveTable(RelOptSchema calciteSchema, String qualifiedTblName, this.referentialConstraints = generateReferentialConstraints(); } + //~ Methods ---------------------------------------------------------------- + + public String getName() { + return name; + } + + @Override + public List getQualifiedName() { + return qualifiedTblName; + } + + @Override + public RelDataType getRowType() { + return rowType; + } + + @Override + public RelOptSchema getRelOptSchema() { + return schema; + } + + @Override + public Expression getExpression(Class clazz) { + throw new UnsupportedOperationException(); + } + + @Override + public RelOptTable extend(List extendedFields) { + throw new UnsupportedOperationException(); + } + + @Override + public List getColumnStrategies() { + return RelOptTableImpl.columnStrategies(this); + } + public RelOptHiveTable copy(RelDataType newRowType) { // 1. Build map of column name to col index of original schema // Assumption: Hive Table can not contain duplicate column names @@ -149,7 +202,7 @@ public RelOptHiveTable copy(RelDataType newRowType) { } // 3. Build new Table - return new RelOptHiveTable(this.schema, this.name, newRowType, + return new RelOptHiveTable(this.schema, this.qualifiedTblName, newRowType, this.hiveTblMetadata, newHiveNonPartitionCols, newHivePartitionCols, newHiveVirtualCols, this.hiveConf, this.partitionCache, this.colStatsCache, this.noColsMissingStats); } 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 e091f38bc6..0ad2f0b2db 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 @@ -33,12 +33,15 @@ import org.apache.calcite.adapter.druid.DruidQuery; import org.apache.calcite.adapter.druid.DruidSchema; import org.apache.calcite.adapter.druid.DruidTable; +import org.apache.calcite.adapter.java.JavaTypeFactory; import org.apache.calcite.adapter.jdbc.JdbcConvention; +import org.apache.calcite.adapter.jdbc.JdbcImplementor; import org.apache.calcite.adapter.jdbc.JdbcSchema; import org.apache.calcite.adapter.jdbc.JdbcTable; import org.apache.calcite.config.CalciteConnectionConfig; import org.apache.calcite.config.CalciteConnectionConfigImpl; import org.apache.calcite.config.CalciteConnectionProperty; +import org.apache.calcite.config.NullCollation; import org.apache.calcite.interpreter.BindableConvention; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptMaterialization; @@ -97,7 +100,9 @@ import org.apache.calcite.sql.SqlLiteral; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.SqlOperator; +import org.apache.calcite.sql.SqlSampleSpec; import org.apache.calcite.sql.SqlWindow; +import org.apache.calcite.sql.dialect.HiveSqlDialect; import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.type.ArraySqlType; import org.apache.calcite.sql.type.SqlTypeName; @@ -446,8 +451,10 @@ Operator genOPTree(ASTNode ast, PlannerContext plannerCtx) throws SemanticExcept this.ctx.setCboInfo("Plan optimized by CBO."); this.ctx.setCboSucceeded(true); } else { - // 1. Gen Optimized AST - ASTNode newAST = getOptimizedAST(); + // 0. Gen Optimized Plan + final RelNode newPlan = logicalPlan(); + // 1. Convert Plan to AST + ASTNode newAST = getOptimizedAST(newPlan); // 1.1. Fix up the query for insert/ctas/materialized views newAST = fixUpAfterCbo(ast, newAST, cboCtx); @@ -518,7 +525,14 @@ Operator genOPTree(ASTNode ast, PlannerContext plannerCtx) throws SemanticExcept LOG.info("CBO Succeeded; optimized logical plan."); this.ctx.setCboInfo("Plan optimized by CBO."); this.ctx.setCboSucceeded(true); + if (this.ctx.isExplainPlan()) { + ExplainConfiguration explainConfig = this.ctx.getExplainConfig(); + if (explainConfig.isExtended() || explainConfig.isFormatted()) { + this.ctx.setOptimizedSql(getOptimizedSql(newPlan)); + } + } if (LOG.isTraceEnabled()) { + LOG.trace(getOptimizedSql(newPlan)); LOG.trace(newAST.dump()); } } @@ -1420,6 +1434,41 @@ RelNode logicalPlan() throws SemanticException { return optimizedOptiqPlan; } + /** + * Get SQL rewrite for a Calcite logical plan + * + * @return Optimized SQL text (or null, if failed) + */ + public String getOptimizedSql(RelNode optimizedOptiqPlan) { + SqlDialect dialect = new HiveSqlDialect(SqlDialect.EMPTY_CONTEXT + .withDatabaseProduct(SqlDialect.DatabaseProduct.HIVE) + .withDatabaseMajorVersion(4) // TODO: should not be hardcoded + .withDatabaseMinorVersion(0) + .withIdentifierQuoteString("`") + .withNullCollation(NullCollation.LOW)) { + @Override + protected boolean allowsAs() { + return true; + } + + @Override + public boolean supportsCharSet() { + return false; + } + }; + try { + final JdbcImplementor jdbcImplementor = + new JdbcImplementor(dialect, (JavaTypeFactory) optimizedOptiqPlan.getCluster() + .getTypeFactory()); + final JdbcImplementor.Result result = jdbcImplementor.visitChild(0, optimizedOptiqPlan); + String sql = result.asStatement().toSqlString(dialect).getSql(); + return sql.replaceAll("VARCHAR\\(2147483647\\)", "STRING"); + } catch (Exception ex) { + LOG.warn("Rel2SQL Rewrite threw error", ex); + } + return null; + } + /** * Get Optimized AST for the given QB tree in the semAnalyzer. * @@ -1427,7 +1476,16 @@ RelNode logicalPlan() throws SemanticException { * @throws SemanticException */ ASTNode getOptimizedAST() throws SemanticException { - RelNode optimizedOptiqPlan = logicalPlan(); + return getOptimizedAST(logicalPlan()); + } + + /** + * Get Optimized AST for the given QB tree in the semAnalyzer. + * + * @return Optimized operator tree translated in to Hive AST + * @throws SemanticException + */ + ASTNode getOptimizedAST(RelNode optimizedOptiqPlan) throws SemanticException { ASTNode optiqOptimizedAST = ASTConverter.convert(optimizedOptiqPlan, resultSchema, HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_COLUMN_ALIGNMENT)); return optiqOptimizedAST; @@ -2129,7 +2187,7 @@ private RelNode copyNodeScan(RelNode scan) { ImmutableList.of(dq.getTableScan())); } else { newScan = new HiveTableScan(optCluster, optCluster.traitSetOf(HiveRelNode.CONVENTION), - (RelOptHiveTable) scan.getTable(), scan.getTable().getQualifiedName().get(0), + (RelOptHiveTable) scan.getTable(), ((RelOptHiveTable) scan.getTable()).getName(), null, false, false); } return newScan; @@ -2745,13 +2803,11 @@ private RelNode genTableLogicalPlan(String tableAlias, QB qb) throws SemanticExc // Build row type from field RelDataType rowType = TypeConverter.getType(cluster, cIList); // Build RelOptAbstractTable - String fullyQualifiedTabName = tabMetaData.getDbName(); - if (fullyQualifiedTabName != null && !fullyQualifiedTabName.isEmpty()) { - fullyQualifiedTabName = fullyQualifiedTabName + "." + tabMetaData.getTableName(); - } - else { - fullyQualifiedTabName = tabMetaData.getTableName(); + List fullyQualifiedTabName = new ArrayList<>(); + if (tabMetaData.getDbName() != null && !tabMetaData.getDbName().isEmpty()) { + fullyQualifiedTabName.add(tabMetaData.getDbName()); } + fullyQualifiedTabName.add(tabMetaData.getTableName()); if (tableType == TableType.DRUID) { // Build Druid query @@ -2836,13 +2892,11 @@ private RelNode genTableLogicalPlan(String tableAlias, QB qb) throws SemanticExc // Build row type from field RelDataType rowType = inferNotNullableColumns(tabMetaData, TypeConverter.getType(cluster, rr, null)); // Build RelOptAbstractTable - String fullyQualifiedTabName = tabMetaData.getDbName(); - if (fullyQualifiedTabName != null && !fullyQualifiedTabName.isEmpty()) { - fullyQualifiedTabName = fullyQualifiedTabName + "." + tabMetaData.getTableName(); - } - else { - fullyQualifiedTabName = tabMetaData.getTableName(); + List fullyQualifiedTabName = new ArrayList<>(); + if (tabMetaData.getDbName() != null && !tabMetaData.getDbName().isEmpty()) { + fullyQualifiedTabName.add(tabMetaData.getDbName()); } + fullyQualifiedTabName.add(tabMetaData.getTableName()); RelOptHiveTable optTable = new RelOptHiveTable(relOptSchema, fullyQualifiedTabName, rowType, tabMetaData, nonPartitionColumns, partitionColumns, virtualCols, conf, partitionCache, colStatsCache, noColsMissingStats); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java index 6f0a803b95..feec0fdcce 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java @@ -206,7 +206,8 @@ public void analyzeInternal(ASTNode ast) throws SemanticException { fetchTask, sem, config, - ctx.getCboInfo()); + ctx.getCboInfo(), + ctx.getOptimizedSql()); work.setAppendTaskType( HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVEEXPLAINDEPENDENCYAPPENDTASKTYPES)); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java index 2cdf8cf0d8..ce0300340d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java @@ -50,6 +50,8 @@ String cboInfo; + private String optimizedSQL; + private transient BaseSemanticAnalyzer analyzer; public ExplainWork() { @@ -61,7 +63,8 @@ public ExplainWork(Path resFile, Task fetchTask, BaseSemanticAnalyzer analyzer, ExplainConfiguration config, - String cboInfo) { + String cboInfo, + String optimizedSQL) { this.resFile = resFile; this.rootTasks = new ArrayList>(rootTasks); this.fetchTask = fetchTask; @@ -71,6 +74,7 @@ public ExplainWork(Path resFile, } this.pCtx = pCtx; this.cboInfo = cboInfo; + this.optimizedSQL = optimizedSQL; this.config = config; } @@ -170,6 +174,14 @@ public void setCboInfo(String cboInfo) { this.cboInfo = cboInfo; } + public String getOptimizedSQL() { + return optimizedSQL; + } + + public void setOptimizedSQL(String optimizedSQL) { + this.optimizedSQL = optimizedSQL; + } + public ExplainConfiguration getConfig() { return config; } diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExplainTask.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExplainTask.java index 5a7772255a..244bc73943 100644 --- a/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExplainTask.java +++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExplainTask.java @@ -218,7 +218,7 @@ public void testGetJSONPlan() throws Exception { JsonNode result = objectMapper.readTree(uut.getJSONPlan(null, tasks, null, true, - false, false).toString()); + false, false, null).toString()); JsonNode expected = objectMapper.readTree("{\"STAGE DEPENDENCIES\":{\"mockTaskId\":" + "{\"ROOT STAGE\":\"TRUE\",\"BACKUP STAGE\":\"backup-id-mock\"}},\"STAGE PLANS\":" + "{\"mockTaskId\":{}}}"); diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java index ffd0445db0..470263ba5d 100644 --- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java +++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java @@ -299,7 +299,7 @@ private String explain(SemanticAnalyzer sem, QueryPlan plan) throws ExplainConfiguration config = new ExplainConfiguration(); config.setExtended(true); ExplainWork work = new ExplainWork(tmp, sem.getParseContext(), sem.getRootTasks(), - sem.getFetchTask(), sem, config, null); + sem.getFetchTask(), sem, config, null, plan.getOptimizedQueryString()); ExplainTask task = new ExplainTask(); task.setWork(work); task.initialize(queryState, plan, null, null); diff --git a/ql/src/test/results/clientpositive/acid_nullscan.q.out b/ql/src/test/results/clientpositive/acid_nullscan.q.out index 19fcc8c457..f4cc694d55 100644 --- a/ql/src/test/results/clientpositive/acid_nullscan.q.out +++ b/ql/src/test/results/clientpositive/acid_nullscan.q.out @@ -32,6 +32,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select sum(a) from acid_vectorized_n1 where false POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT SUM(`a`) AS `$f0` +FROM `default`.`acid_vectorized_n1` +WHERE FALSE STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/alter_partition_coltype.q.out b/ql/src/test/results/clientpositive/alter_partition_coltype.q.out index 8e2a74560d..5d033a3c01 100644 --- a/ql/src/test/results/clientpositive/alter_partition_coltype.q.out +++ b/ql/src/test/results/clientpositive/alter_partition_coltype.q.out @@ -70,6 +70,9 @@ PREHOOK: query: explain extended select count(*) from alter_coltype where dt = ' PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) from alter_coltype where dt = '100' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`alter_coltype` +WHERE `dt` = 100 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -117,6 +120,9 @@ PREHOOK: query: explain extended select count(*) from alter_coltype where ts = ' PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) from alter_coltype where ts = '6.30' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`alter_coltype` +WHERE `ts` = 6.3 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -140,6 +146,9 @@ PREHOOK: query: explain extended select count(*) from alter_coltype where ts = 3 PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) from alter_coltype where ts = 3.0 and dt=100 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`alter_coltype` +WHERE `ts` = 3 AND `dt` = 100 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -216,6 +225,9 @@ PREHOOK: query: explain extended select key, value, dt, ts from alter_coltype wh PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, dt, ts from alter_coltype where dt is not null POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `dt`, `ts` +FROM `default`.`alter_coltype` +WHERE `dt` IS NOT NULL STAGE DEPENDENCIES: Stage-0 is a root stage @@ -453,6 +465,9 @@ PREHOOK: query: explain extended select intcol from pt.alterdynamic_part_table w PREHOOK: type: QUERY POSTHOOK: query: explain extended select intcol from pt.alterdynamic_part_table where partcol1='1' and partcol2='1' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `intcol` +FROM `pt`.`alterdynamic_part_table` +WHERE `partcol1` = 1 AND `partcol2` = '1' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -524,6 +539,9 @@ PREHOOK: query: explain extended select intcol from pt.alterdynamic_part_table w PREHOOK: type: QUERY POSTHOOK: query: explain extended select intcol from pt.alterdynamic_part_table where (partcol1='2' and partcol2='1')or (partcol1='1' and partcol2='__HIVE_DEFAULT_PARTITION__') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `intcol` +FROM `pt`.`alterdynamic_part_table` +WHERE `partcol1` = 2 AND `partcol2` = '1' OR `partcol1` = 1 AND `partcol2` = '__HIVE_DEFAULT_PARTITION__' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/ambiguitycheck.q.out b/ql/src/test/results/clientpositive/ambiguitycheck.q.out index d7fee3d283..80c9582fec 100644 --- a/ql/src/test/results/clientpositive/ambiguitycheck.q.out +++ b/ql/src/test/results/clientpositive/ambiguitycheck.q.out @@ -705,6 +705,9 @@ PREHOOK: query: explain extended select int(1.2) from src limit 1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select int(1.2) from src limit 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1.2 AS INTEGER) AS `_o__c0` +FROM `default`.`src` +LIMIT 1 STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out b/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out index a8cfb97762..353813ee2d 100644 --- a/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out +++ b/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out @@ -87,6 +87,8 @@ PREHOOK: query: EXPLAIN EXTENDED select * from test2_n6 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED select * from test2_n6 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `name`, `age` +FROM `default`.`test2_n6` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/autoColumnStats_1.q.out b/ql/src/test/results/clientpositive/autoColumnStats_1.q.out index 1756019845..0362f50305 100644 --- a/ql/src/test/results/clientpositive/autoColumnStats_1.q.out +++ b/ql/src/test/results/clientpositive/autoColumnStats_1.q.out @@ -24,6 +24,8 @@ PREHOOK: query: explain extended select * from src_multi1_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from src_multi1_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src_multi1_n1` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/autoColumnStats_2.q.out b/ql/src/test/results/clientpositive/autoColumnStats_2.q.out index 07f1cba6a2..b79c78dd25 100644 --- a/ql/src/test/results/clientpositive/autoColumnStats_2.q.out +++ b/ql/src/test/results/clientpositive/autoColumnStats_2.q.out @@ -24,6 +24,8 @@ PREHOOK: query: explain extended select * from src_multi1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from src_multi1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src_multi1` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out b/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out index 259142d65c..eb608d4321 100644 --- a/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out +++ b/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out @@ -80,6 +80,23 @@ JOIN `orderpayment_small` `order_city` ON `order_city`.`cityid` = `orderpayment` JOIN `user_small` `user` ON `user`.`userid` = `orderpayment`.`userid` limit 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`date`, `t6`.`dealid` +FROM (SELECT `userid` +FROM `default`.`user_small` +WHERE `userid` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `dealid`, `date`, `cityid`, `userid` +FROM `default`.`orderpayment_small` +WHERE `date` IS NOT NULL AND `dealid` IS NOT NULL AND `cityid` IS NOT NULL AND `userid` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `date` +FROM `default`.`orderpayment_small` +WHERE `date` IS NOT NULL) AS `t4` ON `t2`.`date` = `t4`.`date` +INNER JOIN (SELECT `dealid` +FROM `default`.`orderpayment_small` +WHERE `dealid` IS NOT NULL) AS `t6` ON `t2`.`dealid` = `t6`.`dealid` +INNER JOIN (SELECT `cityid` +FROM `default`.`orderpayment_small` +WHERE `cityid` IS NOT NULL) AS `t8` ON `t2`.`cityid` = `t8`.`cityid`) ON `t0`.`userid` = `t2`.`userid` +LIMIT 5 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/bucket1.q.out b/ql/src/test/results/clientpositive/bucket1.q.out index 07b5b9d3bd..f39af86ff0 100644 --- a/ql/src/test/results/clientpositive/bucket1.q.out +++ b/ql/src/test/results/clientpositive/bucket1.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket1_1 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/bucket2.q.out b/ql/src/test/results/clientpositive/bucket2.q.out index e8a1dd7ed8..8d1d066370 100644 --- a/ql/src/test/results/clientpositive/bucket2.q.out +++ b/ql/src/test/results/clientpositive/bucket2.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket2_1 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/bucket3.q.out b/ql/src/test/results/clientpositive/bucket3.q.out index d9ee0dc051..ed7da20a46 100644 --- a/ql/src/test/results/clientpositive/bucket3.q.out +++ b/ql/src/test/results/clientpositive/bucket3.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket3_1 partition (ds='1') select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out index 9fc4fd9de4..7764706665 100644 --- a/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out +++ b/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out @@ -116,6 +116,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n19 a join srcbucket_mapjoin_part_2_n16 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n19` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n16` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-6 is a root stage Stage-5 depends on stages: Stage-6 @@ -560,6 +567,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n19 a join srcbucket_mapjoin_part_2_n16 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n19` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n16` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-6 is a root stage Stage-5 depends on stages: Stage-6 diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out index 61eea9981c..090a0db125 100644 --- a/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out +++ b/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out @@ -100,6 +100,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n12 a join srcbucket_mapjoin_part_2_n10 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n10` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-6 is a root stage Stage-5 depends on stages: Stage-6 @@ -544,6 +551,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n12 a join srcbucket_mapjoin_part_2_n10 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n10` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-6 is a root stage Stage-5 depends on stages: Stage-6 diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out index 5322a0631f..692b8e7d9f 100644 --- a/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out +++ b/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out @@ -100,6 +100,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n4 a join srcbucket_mapjoin_part_2_n3 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n4` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n3` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-6 is a root stage Stage-5 depends on stages: Stage-6 @@ -544,6 +551,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n4 a join srcbucket_mapjoin_part_2_n3 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n4` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n3` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-6 is a root stage Stage-5 depends on stages: Stage-6 diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out index 31d787034a..5f0cea5cb0 100644 --- a/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out +++ b/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out @@ -66,6 +66,16 @@ POSTHOOK: query: explain extended select a.key as key, a.value as val1, b.value as val2, c.value as val3 from tbl1_n0 a join tbl2_n0 b on a.key = b.key join tbl3 c on a.value = c.value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value` AS `val1`, `t2`.`value` AS `val2`, `t4`.`value` AS `val3` +FROM (SELECT `key`, `value` +FROM `default`.`tbl1_n0` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`tbl2_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +INNER JOIN (SELECT `value` +FROM `default`.`tbl3` +WHERE `value` IS NOT NULL) AS `t4` ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-7 is a root stage Stage-5 depends on stages: Stage-7 @@ -431,6 +441,16 @@ POSTHOOK: query: explain extended select a.key as key, a.value as val1, b.value as val2, c.value as val3 from tbl1_n0 a join tbl2_n0 b on a.key = b.key join tbl3 c on a.value = c.value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value` AS `val1`, `t2`.`value` AS `val2`, `t4`.`value` AS `val3` +FROM (SELECT `key`, `value` +FROM `default`.`tbl1_n0` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`tbl2_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +INNER JOIN (SELECT `value` +FROM `default`.`tbl3` +WHERE `value` IS NOT NULL) AS `t4` ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-7 is a root stage Stage-5 depends on stages: Stage-7 diff --git a/ql/src/test/results/clientpositive/combine2.q.out b/ql/src/test/results/clientpositive/combine2.q.out index 0ea3a219f3..7c39a6864d 100644 --- a/ql/src/test/results/clientpositive/combine2.q.out +++ b/ql/src/test/results/clientpositive/combine2.q.out @@ -127,6 +127,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(1) from combine2_n0 where value is not null POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`combine2_n0` +WHERE `value` IS NOT NULL STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/comments.q.out b/ql/src/test/results/clientpositive/comments.q.out index 5fd46962d7..314707d4d1 100644 --- a/ql/src/test/results/clientpositive/comments.q.out +++ b/ql/src/test/results/clientpositive/comments.q.out @@ -75,6 +75,13 @@ PREHOOK: query: explain extended select /*+ MAPJOIN(a) */ count(*) from src a jo PREHOOK: type: QUERY POSTHOOK: query: explain extended select /*+ MAPJOIN(a) */ count(*) from src a join src b on a.key = b.key where a.key > 0 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` > 0) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`src` +WHERE `key` > 0) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-5 is a root stage Stage-2 depends on stages: Stage-5 diff --git a/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out b/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out index cb8185d050..532e977932 100644 --- a/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out +++ b/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out @@ -5,6 +5,12 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from (select a.key as ak, a.value as av, b.key as bk, b.value as bv from src a join src1 b where a.key = '429' ) c POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('429' AS STRING) AS `ak`, `t0`.`value` AS `av`, `t1`.`key` AS `bk`, `t1`.`value` AS `bv` +FROM (SELECT CAST('429' AS STRING) AS `key`, `value` +FROM `default`.`src` +WHERE `key` = '429') AS `t0`, +(SELECT `key`, `value` +FROM `default`.`src1`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out b/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out index a79b8e7053..97922c2636 100644 --- a/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out +++ b/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out @@ -46,6 +46,9 @@ PREHOOK: query: explain extended select intcol from dynamic_part_table where par PREHOOK: type: QUERY POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `intcol` +FROM `default`.`dynamic_part_table` +WHERE `partcol1` = '1' AND `partcol2` = '1' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -117,6 +120,9 @@ PREHOOK: query: explain extended select intcol from dynamic_part_table where par PREHOOK: type: QUERY POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `intcol` +FROM `default`.`dynamic_part_table` +WHERE `partcol1` = '1' AND `partcol2` = '1' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -188,6 +194,9 @@ PREHOOK: query: explain extended select intcol from dynamic_part_table where (pa PREHOOK: type: QUERY POSTHOOK: query: explain extended select intcol from dynamic_part_table where (partcol1='1' and partcol2='1')or (partcol1='1' and partcol2='__HIVE_DEFAULT_PARTITION__') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `intcol` +FROM `default`.`dynamic_part_table` +WHERE `partcol1` = '1' AND (`partcol2` = '1' OR `partcol2` = '__HIVE_DEFAULT_PARTITION__') STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out b/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out index b1942a1e14..f8f0a76709 100644 --- a/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out +++ b/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out @@ -536,6 +536,13 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM src t1 JOIN encrypted_table t2 WH PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM src t1 JOIN encrypted_table t2 WHERE t1.key = t2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`encrypted_table` +WHERE `key` IS NOT NULL) AS `t2` ON CAST(`t0`.`key` AS DOUBLE) = CAST(`t2`.`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out b/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out index be3af8f3a8..59118f5891 100644 --- a/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out +++ b/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out @@ -54,6 +54,13 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM table_key_1 t1 JOIN table_key_2 t PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM table_key_1 t1 JOIN table_key_2 t2 WHERE (t1.key = t2.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`table_key_1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`table_key_2` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/erasurecoding/erasure_explain.q.out b/ql/src/test/results/clientpositive/erasurecoding/erasure_explain.q.out index 8ada9b6c9e..a93f36bd83 100644 --- a/ql/src/test/results/clientpositive/erasurecoding/erasure_explain.q.out +++ b/ql/src/test/results/clientpositive/erasurecoding/erasure_explain.q.out @@ -90,6 +90,8 @@ PREHOOK: query: explain extended select key, value from srcpart PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from srcpart POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -389,6 +391,8 @@ PREHOOK: query: explain extended select key, value from src PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_date.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_date.q.out index 68abf2b3ee..eadaaca8fa 100644 --- a/ql/src/test/results/clientpositive/extrapolate_part_stats_date.q.out +++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_date.q.out @@ -119,6 +119,8 @@ PREHOOK: query: explain extended select d_date from date_dim_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select d_date from date_dim_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `d_date` +FROM `default`.`date_dim_n1` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out index f80599db84..c4cd90c2ed 100644 --- a/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out +++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out @@ -105,6 +105,8 @@ PREHOOK: query: explain extended select state from loc_orc_1d PREHOOK: type: QUERY POSTHOOK: query: explain extended select state from loc_orc_1d POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state` +FROM `default`.`loc_orc_1d` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -220,6 +222,8 @@ PREHOOK: query: explain extended select state,locid from loc_orc_1d PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid from loc_orc_1d POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid` +FROM `default`.`loc_orc_1d` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -424,6 +428,8 @@ PREHOOK: query: explain extended select state from loc_orc_2d PREHOOK: type: QUERY POSTHOOK: query: explain extended select state from loc_orc_2d POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state` +FROM `default`.`loc_orc_2d` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -635,6 +641,8 @@ PREHOOK: query: explain extended select state,locid from loc_orc_2d PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid from loc_orc_2d POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid` +FROM `default`.`loc_orc_2d` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out index e1024bebdb..3e7d0f460f 100644 --- a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out +++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out @@ -131,6 +131,8 @@ PREHOOK: query: explain extended select state from loc_orc_1d_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state from loc_orc_1d_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state` +FROM `default`.`loc_orc_1d_n1` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -338,6 +340,8 @@ PREHOOK: query: explain extended select state,locid from loc_orc_1d_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid from loc_orc_1d_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid` +FROM `default`.`loc_orc_1d_n1` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -573,6 +577,8 @@ PREHOOK: query: explain extended select state from loc_orc_1d_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state from loc_orc_1d_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state` +FROM `default`.`loc_orc_1d_n1` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -780,6 +786,8 @@ PREHOOK: query: explain extended select state,locid from loc_orc_1d_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid from loc_orc_1d_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid` +FROM `default`.`loc_orc_1d_n1` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -1069,6 +1077,8 @@ PREHOOK: query: explain extended select state from loc_orc_2d_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state from loc_orc_2d_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state` +FROM `default`.`loc_orc_2d_n1` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -1609,6 +1619,8 @@ PREHOOK: query: explain extended select state,locid from loc_orc_2d_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid from loc_orc_2d_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid` +FROM `default`.`loc_orc_2d_n1` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/filter_aggr.q.out b/ql/src/test/results/clientpositive/filter_aggr.q.out index 3bb650ae6c..0b42dca52a 100644 --- a/ql/src/test/results/clientpositive/filter_aggr.q.out +++ b/ql/src/test/results/clientpositive/filter_aggr.q.out @@ -16,6 +16,9 @@ select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 )sub where m = 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(`key`) AS `c`, 1 AS `m` +FROM `default`.`src` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/filter_join_breaktask.q.out b/ql/src/test/results/clientpositive/filter_join_breaktask.q.out index a86997bad3..07843d0667 100644 --- a/ql/src/test/results/clientpositive/filter_join_breaktask.q.out +++ b/ql/src/test/results/clientpositive/filter_join_breaktask.q.out @@ -28,6 +28,16 @@ SELECT f.key, g.value FROM filter_join_breaktask f JOIN filter_join_breaktask m ON( f.key = m.key AND f.ds='2008-04-08' AND m.ds='2008-04-08' AND f.key is not null) JOIN filter_join_breaktask g ON(g.value = m.value AND g.ds='2008-04-08' AND m.ds='2008-04-08' AND m.value is not null AND m.value !='') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t2`.`key`, `t0`.`value` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `value` <> '') AS `t0` +INNER JOIN ((SELECT `key`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `value` <> '' AND `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/filter_union.q.out b/ql/src/test/results/clientpositive/filter_union.q.out index d0ac4ae701..a7cd8c1589 100644 --- a/ql/src/test/results/clientpositive/filter_union.q.out +++ b/ql/src/test/results/clientpositive/filter_union.q.out @@ -24,6 +24,13 @@ select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 )sub where m >2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(`key`) AS `c`, 3 AS `m` +FROM `default`.`src` +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(`key`) AS `c`, 4 AS `m` +FROM `default`.`src` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1, Stage-3 diff --git a/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out b/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out index 210dae764f..aaf89aeaa3 100644 --- a/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out +++ b/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out @@ -42,6 +42,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT key, count(1) FROM T1_n80 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -485,6 +488,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl2_n5 SELECT key, val, count(1) FROM T1_n80 GROUP BY key, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n80` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -793,6 +799,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT key, count(1) FROM (SELECT key, val FROM T1_n80) subq1 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -1228,6 +1237,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1_n80) subq1 GROUP BY k POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -1671,6 +1683,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n2 SELECT 1, key, count(1) FROM T1_n80 GROUP BY 1, key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT 1 AS `_o__c0`, `key`, COUNT(*) AS `_o__c2` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -2115,6 +2130,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n2 SELECT key, 1, val, count(1) FROM T1_n80 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t1_n80` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2424,6 +2442,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n2 SELECT key, key + 1, count(1) FROM T1_n80 GROUP BY key, key + 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` AS `$f0`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) AS `$f1`, COUNT(*) AS `$f2` +FROM `default`.`t1_n80` +GROUP BY `key`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2735,6 +2756,9 @@ SELECT key + key, sum(cnt) from (SELECT key, count(1) as cnt FROM T1_n80 GROUP BY key) subq1 group by key + key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS `$f0`, SUM(COUNT(*)) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3063,6 +3087,13 @@ SELECT key, count(1) FROM T1_n80 GROUP BY key SELECT key, count(1) FROM T1_n80 GROUP BY key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -3590,6 +3621,13 @@ SELECT key, count(1) FROM T1_n80 GROUP BY key SELECT cast(key + key as string) as key, count(1) FROM T1_n80 GROUP BY key + key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` +UNION ALL +SELECT CAST(CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS STRING) AS `key`, COUNT(*) AS `_o__c1` +FROM `default`.`t1_n80` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-9 is a root stage Stage-2 depends on stages: Stage-9 @@ -4244,6 +4282,15 @@ JOIN (SELECT key, count(1) as cnt FROM T1_n80 GROUP BY key) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`$f1` + `t2`.`$f1` AS `_o__c1` +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -4590,6 +4637,15 @@ JOIN (SELECT key, val, count(1) FROM T1_n80 GROUP BY key, val) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`, `val`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 @@ -4893,6 +4949,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT key, count(1) FROM T2_n49 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t2_n49` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -5200,6 +5259,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n2 SELECT key, 1, val, count(1) FROM T2_n49 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -5646,6 +5708,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl5_n2 SELECT key, 1, val, 2, count(1) FROM T2_n49 GROUP BY key, 1, val, 2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, 2 AS `_o__c3`, COUNT(*) AS `_o__c4` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -6091,6 +6156,9 @@ SELECT key, constant, val, count(1) from (SELECT key, 1 as constant, val from T2_n49)subq group by key, constant, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `constant`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -6543,6 +6611,9 @@ SELECT key, constant as constant2, val, 2 as constant3 from )subq2 group by key, constant3, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 2 AS `constant3`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 diff --git a/ql/src/test/results/clientpositive/groupby_sort_6.q.out b/ql/src/test/results/clientpositive/groupby_sort_6.q.out index 2bc7e411f2..bc31a57182 100644 --- a/ql/src/test/results/clientpositive/groupby_sort_6.q.out +++ b/ql/src/test/results/clientpositive/groupby_sort_6.q.out @@ -22,6 +22,10 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n15 SELECT key, count(1) FROM T1_n61 where ds = '1' GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n61` +WHERE `ds` = '1' +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -280,6 +284,10 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n15 SELECT key, count(1) FROM T1_n61 where ds = '1' GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n61` +WHERE `ds` = '1' +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -529,6 +537,10 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n15 SELECT key, count(1) FROM T1_n61 where ds = '2' GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n61` +WHERE `ds` = '2' +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out b/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out index 940ede832d..e8a1143890 100644 --- a/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out +++ b/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out @@ -42,6 +42,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT key, count(1) FROM T1_n56 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -485,6 +488,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl2_n3 SELECT key, val, count(1) FROM T1_n56 GROUP BY key, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n56` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -863,6 +869,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT key, count(1) FROM (SELECT key, val FROM T1_n56) subq1 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -1298,6 +1307,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1_n56) subq1 GROUP BY k POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -1741,6 +1753,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n1 SELECT 1, key, count(1) FROM T1_n56 GROUP BY 1, key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT 1 AS `_o__c0`, `key`, COUNT(*) AS `_o__c2` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -2185,6 +2200,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n1 SELECT key, 1, val, count(1) FROM T1_n56 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t1_n56` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -2564,6 +2582,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n1 SELECT key, key + 1, count(1) FROM T1_n56 GROUP BY key, key + 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` AS `$f0`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) AS `$f1`, COUNT(*) AS `$f2` +FROM `default`.`t1_n56` +GROUP BY `key`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -2945,6 +2966,9 @@ SELECT cast(key + key as string), sum(cnt) from (SELECT key, count(1) as cnt FROM T1_n56 GROUP BY key) subq1 group by key + key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS STRING) AS `_o__c0`, SUM(COUNT(*)) AS `_o__c1` +FROM `default`.`t1_n56` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -3343,6 +3367,13 @@ SELECT key, count(1) FROM T1_n56 GROUP BY key SELECT key, count(1) FROM T1_n56 GROUP BY key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -3870,6 +3901,13 @@ SELECT key, count(1) FROM T1_n56 GROUP BY key SELECT cast(key + key as string) as key, count(1) FROM T1_n56 GROUP BY key + key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` +UNION ALL +SELECT CAST(CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS STRING) AS `key`, COUNT(*) AS `_o__c1` +FROM `default`.`t1_n56` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-9 is a root stage Stage-10 depends on stages: Stage-9 @@ -4594,6 +4632,15 @@ JOIN (SELECT key, count(1) as cnt FROM T1_n56 GROUP BY key) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`$f1` + `t2`.`$f1` AS `_o__c1` +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -4940,6 +4987,15 @@ JOIN (SELECT key, val, count(1) FROM T1_n56 GROUP BY key, val) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`, `val`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-3 depends on stages: Stage-2 @@ -5313,6 +5369,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT key, count(1) FROM T2_n34 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t2_n34` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -5690,6 +5749,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n1 SELECT key, 1, val, count(1) FROM T2_n34 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -6136,6 +6198,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl5_n1 SELECT key, 1, val, 2, count(1) FROM T2_n34 GROUP BY key, 1, val, 2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, 2 AS `_o__c3`, COUNT(*) AS `_o__c4` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -6581,6 +6646,9 @@ SELECT key, constant, val, count(1) from (SELECT key, 1 as constant, val from T2_n34)subq group by key, constant, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `constant`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -7033,6 +7101,9 @@ SELECT key, constant as constant2, val, 2 as constant3 from )subq2 group by key, constant3, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 2 AS `constant3`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 diff --git a/ql/src/test/results/clientpositive/input23.q.out b/ql/src/test/results/clientpositive/input23.q.out index caf02eeea9..4c8524775c 100644 --- a/ql/src/test/results/clientpositive/input23.q.out +++ b/ql/src/test/results/clientpositive/input23.q.out @@ -5,6 +5,14 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcpart a join srcpart b where a.ds = '2008-04-08' and a.hr = '11' and b.ds = '2008-04-08' and b.hr = '14' limit 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1`, CAST('2008-04-08' AS STRING) AS `ds1`, CAST('14' AS STRING) AS `hr1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = '11') AS `t0`, +(SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('14' AS STRING) AS `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = '14') AS `t2` +LIMIT 5 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/input4.q.out b/ql/src/test/results/clientpositive/input4.q.out index 8aa83da759..ef584ac97b 100644 --- a/ql/src/test/results/clientpositive/input4.q.out +++ b/ql/src/test/results/clientpositive/input4.q.out @@ -45,7 +45,7 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN FORMATTED SELECT Input4Alias.VALUE, Input4Alias.KEY FROM INPUT4_n0 AS Input4Alias POSTHOOK: type: QUERY -{"STAGE DEPENDENCIES":{"Stage-0":{"ROOT STAGE":"TRUE"}},"STAGE PLANS":{"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"TableScan":{"alias:":"input4alias","columns:":["value","key"],"database:":"default","Statistics:":"Num rows: 1 Data size: 58120 Basic stats: COMPLETE Column stats: NONE","table:":"input4_n0","isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"value (type: string), key (type: string)","columnExprMap:":{"_col0":"value","_col1":"key"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 1 Data size: 58120 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_1","children":{"ListSink":{"OperatorId:":"LIST_SINK_3"}}}}}}}}}} +{"optimizedSQL":"SELECT `value`, `key`\nFROM `default`.`input4_n0`","STAGE DEPENDENCIES":{"Stage-0":{"ROOT STAGE":"TRUE"}},"STAGE PLANS":{"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"TableScan":{"alias:":"input4alias","columns:":["value","key"],"database:":"default","Statistics:":"Num rows: 1 Data size: 58120 Basic stats: COMPLETE Column stats: NONE","table:":"input4_n0","isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"value (type: string), key (type: string)","columnExprMap:":{"_col0":"value","_col1":"key"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 1 Data size: 58120 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_1","children":{"ListSink":{"OperatorId:":"LIST_SINK_3"}}}}}}}}}} PREHOOK: query: SELECT Input4Alias.VALUE, Input4Alias.KEY FROM INPUT4_n0 AS Input4Alias PREHOOK: type: QUERY PREHOOK: Input: default@input4_n0 diff --git a/ql/src/test/results/clientpositive/input42.q.out b/ql/src/test/results/clientpositive/input42.q.out index f47b0c6184..df98800183 100644 --- a/ql/src/test/results/clientpositive/input42.q.out +++ b/ql/src/test/results/clientpositive/input42.q.out @@ -4,6 +4,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcpart a where a.ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -1136,6 +1139,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcpart a where a.ds='2008-04-08' and key < 200 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `key` < 200 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -1650,6 +1656,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcpart a where a.ds='2008-04-08' and rand(100) < 0.1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND RAND(100) < 0.1 STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/input_part1.q.out b/ql/src/test/results/clientpositive/input_part1.q.out index 088a9a9a59..4c271068ad 100644 --- a/ql/src/test/results/clientpositive/input_part1.q.out +++ b/ql/src/test/results/clientpositive/input_part1.q.out @@ -14,6 +14,9 @@ POSTHOOK: query: EXPLAIN EXTENDED FROM srcpart INSERT OVERWRITE TABLE dest1_n45 SELECT srcpart.key, srcpart.value, srcpart.hr, srcpart.ds WHERE srcpart.key < 100 and srcpart.ds = '2008-04-08' and srcpart.hr = '12' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('12' AS STRING) AS `hr`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` < 100 AND `ds` = '2008-04-08' AND `hr` = '12' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 diff --git a/ql/src/test/results/clientpositive/input_part9.q.out b/ql/src/test/results/clientpositive/input_part9.q.out index dc2d7d8977..9440167be6 100644 --- a/ql/src/test/results/clientpositive/input_part9.q.out +++ b/ql/src/test/results/clientpositive/input_part9.q.out @@ -4,6 +4,9 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT x.* FROM SRCPART x WHERE key IS NOT NULL AND ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/join17.q.out b/ql/src/test/results/clientpositive/join17.q.out index 4290cc5728..f70c760177 100644 --- a/ql/src/test/results/clientpositive/join17.q.out +++ b/ql/src/test/results/clientpositive/join17.q.out @@ -14,6 +14,13 @@ POSTHOOK: query: EXPLAIN EXTENDED FROM src src1 JOIN src src2 ON (src1.key = src2.key) INSERT OVERWRITE TABLE dest1_n121 SELECT src1.*, src2.* POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/join26.q.out b/ql/src/test/results/clientpositive/join26.q.out index 08e009958e..088b741b74 100644 --- a/ql/src/test/results/clientpositive/join26.q.out +++ b/ql/src/test/results/clientpositive/join26.q.out @@ -18,6 +18,16 @@ SELECT /*+ MAPJOIN(x,y) */ x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.key = z.key and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `key` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key` +FROM `default`.`src1` +WHERE `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-7 is a root stage Stage-6 depends on stages: Stage-7 diff --git a/ql/src/test/results/clientpositive/join32.q.out b/ql/src/test/results/clientpositive/join32.q.out index 05ca72d03b..1f586275ff 100644 --- a/ql/src/test/results/clientpositive/join32.q.out +++ b/ql/src/test/results/clientpositive/join32.q.out @@ -18,6 +18,16 @@ SELECT x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-9 is a root stage Stage-7 depends on stages: Stage-9 diff --git a/ql/src/test/results/clientpositive/join33.q.out b/ql/src/test/results/clientpositive/join33.q.out index c11637b335..d40bb049cb 100644 --- a/ql/src/test/results/clientpositive/join33.q.out +++ b/ql/src/test/results/clientpositive/join33.q.out @@ -18,6 +18,16 @@ SELECT x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-9 is a root stage Stage-7 depends on stages: Stage-9 diff --git a/ql/src/test/results/clientpositive/join34.q.out b/ql/src/test/results/clientpositive/join34.q.out index 88e42e22fc..6181b39418 100644 --- a/ql/src/test/results/clientpositive/join34.q.out +++ b/ql/src/test/results/clientpositive/join34.q.out @@ -26,6 +26,17 @@ FROM ) subq1 JOIN src1 x ON (x.key = subq1.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t5`.`key`, `t5`.`value`, `t3`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 +UNION ALL +SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 100) AS `t3` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE (`key` < 20 OR `key` > 100) AND `key` IS NOT NULL) AS `t5` ON `t3`.`key` = `t5`.`key` STAGE DEPENDENCIES: Stage-7 is a root stage Stage-6 depends on stages: Stage-7 diff --git a/ql/src/test/results/clientpositive/join35.q.out b/ql/src/test/results/clientpositive/join35.q.out index 3f1573917c..6a52d9d9d9 100644 --- a/ql/src/test/results/clientpositive/join35.q.out +++ b/ql/src/test/results/clientpositive/join35.q.out @@ -26,6 +26,19 @@ FROM ) subq1 JOIN src1 x ON (x.key = subq1.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t5`.`key`, `t5`.`value`, `t3`.`$f1` AS `cnt` +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`src` +WHERE `key` < 20 +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`src` +WHERE `key` > 100 +GROUP BY `key`) AS `t3` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE (`key` < 20 OR `key` > 100) AND `key` IS NOT NULL) AS `t5` ON `t3`.`key` = `t5`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-8 depends on stages: Stage-1, Stage-5 diff --git a/ql/src/test/results/clientpositive/join9.q.out b/ql/src/test/results/clientpositive/join9.q.out index 291b072a51..e02572693e 100644 --- a/ql/src/test/results/clientpositive/join9.q.out +++ b/ql/src/test/results/clientpositive/join9.q.out @@ -14,6 +14,13 @@ POSTHOOK: query: EXPLAIN EXTENDED FROM srcpart src1 JOIN src src2 ON (src1.key = src2.key) INSERT OVERWRITE TABLE dest1_n39 SELECT src1.key, src2.value where src1.ds = '2008-04-08' and src1.hr = '12' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t2`.`value` +FROM (SELECT `key`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('12' AS STRING) AS `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = '12' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/join_filters_overlap.q.out b/ql/src/test/results/clientpositive/join_filters_overlap.q.out index bc70a84f43..6557cac9f4 100644 --- a/ql/src/test/results/clientpositive/join_filters_overlap.q.out +++ b/ql/src/test/results/clientpositive/join_filters_overlap.q.out @@ -14,6 +14,15 @@ PREHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (a_n4.key=c.key AND a_n4.value=60 AND c.value=60) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t` +LEFT JOIN (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t1` ON `t`.`key` = `t1`.`key` AND `t`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t`.`key` = `t3`.`key` AND `t`.`value` = 60 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -209,6 +218,15 @@ PREHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on ( PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (b.key=c.key AND b.value=60 AND c.value=60) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t0` +RIGHT JOIN (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t1` ON `t0`.`key` = `t1`.`key` AND `t1`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t1`.`key` = `t3`.`key` AND `t1`.`value` = 60 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -404,6 +422,15 @@ PREHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on ( PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50 AND b.value>10) left outer join a_n4 c on (b.key=c.key AND b.value=60 AND b.value>20 AND c.value=60) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t0` +RIGHT JOIN (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t1` ON `t0`.`key` = `t1`.`key` AND `t1`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t1`.`key` = `t3`.`key` AND `t1`.`value` = 60 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -599,6 +626,17 @@ PREHOOK: query: explain extended select * from a_n4 full outer join a_n4 b on (a PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 full outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (b.key=c.key AND b.value=60 AND c.value=60) left outer join a_n4 d on (a_n4.key=d.key AND a_n4.value=40 AND d.value=40) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t` +FULL JOIN (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t0` ON `t`.`key` = `t0`.`key` AND `t`.`value` = 50 AND `t0`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t2` ON `t0`.`key` = `t2`.`key` AND `t0`.`value` = 60 +LEFT JOIN (SELECT `key`, CAST(40 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 40) AS `t4` ON `t`.`key` = `t4`.`key` AND `t`.`value` = 40 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -806,6 +844,18 @@ PREHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (a_n4.key=c.key AND a_n4.value=60 AND c.value=60) left outer join a_n4 d on (a_n4.key=d.key AND a_n4.value=40 AND d.value=40) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t` +LEFT JOIN (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t1` ON `t`.`key` = `t1`.`key` AND `t`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t`.`key` = `t3`.`key` AND `t`.`value` = 60 +LEFT JOIN (SELECT `key`, CAST(40 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 40) AS `t5` ON `t`.`key` = `t5`.`key` AND `t`.`value` = 40 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out index 6a959a8903..d13edd6012 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out @@ -18,6 +18,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended insert overwrite table list_bucketing_dynamic_part_n0 partition (ds='2008-04-08', hr) select key, value, hr from srcpart where ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -402,6 +405,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from list_bucketing_dynamic_part_n0 where ds='2008-04-08' and hr='11' and key = "484" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, `value` +FROM `default`.`list_bucketing_dynamic_part_n0` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `key` = '484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out index c3eccac220..44b712baf3 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out @@ -22,6 +22,8 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n3 partition (ds = '2008-04-08', hr = '11') select key, value from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -284,6 +286,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from list_bucketing_static_part_n3 where ds='2008-04-08' and hr='11' and value = "val_466" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, CAST('val_466' AS STRING) AS `value` +FROM `default`.`list_bucketing_static_part_n3` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `value` = 'val_466' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out index 2f42296f7e..f5e643eed6 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out @@ -22,6 +22,8 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_mul_col_n0 partition (ds = '2008-04-08', hr = '11') select 1, key, 1, value, 1 from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT 1 AS `_o__c0`, `key`, 1 AS `_o__c2`, `value`, 1 AS `_o__c4` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -292,6 +294,9 @@ POSTHOOK: query: explain extended select * from list_bucketing_mul_col_n0 where ds='2008-04-08' and hr='11' and col2 = "466" and col4 = "val_466" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `col1`, CAST('466' AS STRING) AS `col2`, `col3`, CAST('val_466' AS STRING) AS `col4`, `col5`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr` +FROM `default`.`list_bucketing_mul_col_n0` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `col2` = '466' AND `col4` = 'val_466' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -386,6 +391,9 @@ POSTHOOK: query: explain extended select * from list_bucketing_mul_col_n0 where ds='2008-04-08' and hr='11' and col2 = "382" and col4 = "val_382" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `col1`, CAST('382' AS STRING) AS `col2`, `col3`, CAST('val_382' AS STRING) AS `col4`, `col5`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr` +FROM `default`.`list_bucketing_mul_col_n0` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `col2` = '382' AND `col4` = 'val_382' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out index e067e06d7e..a43a0b7152 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out @@ -22,6 +22,8 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_mul_col partition (ds = '2008-04-08', hr = '2013-01-23+18:00:99') select 1, key, 1, value, 1 from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT 1 AS `_o__c0`, `key`, 1 AS `_o__c2`, `value`, 1 AS `_o__c4` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -292,6 +294,9 @@ POSTHOOK: query: explain extended select * from list_bucketing_mul_col where ds='2008-04-08' and hr='2013-01-23+18:00:99' and col2 = "466" and col4 = "val_466" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `col1`, CAST('466' AS STRING) AS `col2`, `col3`, CAST('val_466' AS STRING) AS `col4`, `col5`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('2013-01-23+18:00:99' AS STRING) AS `hr` +FROM `default`.`list_bucketing_mul_col` +WHERE `ds` = '2008-04-08' AND `hr` = '2013-01-23+18:00:99' AND `col2` = '466' AND `col4` = 'val_466' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out index afe76784af..7420e42d76 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out @@ -16,6 +16,8 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended insert overwrite table list_bucketing select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -287,6 +289,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from list_bucketing where key = "484" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, `value` +FROM `default`.`list_bucketing` +WHERE `key` = '484' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out index 18aa8d56b9..5750fdd688 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out @@ -22,6 +22,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n4 partition (ds = '2008-04-08', hr = '11') select key, value from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -358,6 +361,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from list_bucketing_static_part_n4 where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr` +FROM `default`.`list_bucketing_static_part_n4` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out index e70cfca9d3..affbdf5aed 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out @@ -12,6 +12,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n1 partition (ds='2008-04-08', hr='11') select key, value from srcpart where ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -350,6 +353,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from list_bucketing_static_part_n1 where ds='2008-04-08' and hr='11' and key = "484" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, `value` +FROM `default`.`list_bucketing_static_part_n1` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `key` = '484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out index fb20e69b41..4ddd1123f7 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out @@ -22,6 +22,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n2 partition (ds = '2008-04-08', hr = '11') select key, value from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -342,6 +345,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n2 partition (ds = '2008-04-08', hr = '11') select key, value from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -798,6 +804,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from list_bucketing_static_part_n2 where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr` +FROM `default`.`list_bucketing_static_part_n2` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out index fd5962f5f7..06e2a45c52 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out @@ -18,6 +18,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended insert overwrite table list_bucketing_dynamic_part_n1 partition (ds='2008-04-08', hr) select key, value, hr from srcpart where ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -407,6 +410,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds, hr from list_bucketing_dynamic_part_n1 where ds='2008-04-08' and key = "103" and value ="val_103" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('103' AS STRING) AS `key`, CAST('val_103' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`list_bucketing_dynamic_part_n1` +WHERE `ds` = '2008-04-08' AND `key` = '103' AND `value` = 'val_103' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out index 709b40c5ca..a3089a70cd 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out @@ -22,6 +22,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_dynamic_part_n3 partition (ds = '2008-04-08', hr) select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, IF(MOD(CAST(`key` AS DOUBLE), CAST(100 AS DOUBLE)) = 0, 'a1', 'b1') AS `_o__c2` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -387,6 +390,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_dynamic_part_n3 partition (ds = '2008-04-08', hr) select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, IF(MOD(CAST(`key` AS DOUBLE), CAST(100 AS DOUBLE)) = 0, 'a1', 'b1') AS `_o__c2` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -894,6 +900,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from list_bucketing_dynamic_part_n3 where key = '484' and value = 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, `ds`, `hr` +FROM `default`.`list_bucketing_dynamic_part_n3` +WHERE `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out index d12c9d91d4..faef7a9d64 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out @@ -22,6 +22,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_dynamic_part partition (ds = '2008-04-08', hr) select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, IF(MOD(CAST(`key` AS DOUBLE), CAST(100 AS DOUBLE)) = 0, 'a1', 'b1') AS `_o__c2` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -387,6 +390,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_dynamic_part partition (ds = '2008-04-08', hr) select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, IF(MOD(CAST(`key` AS DOUBLE), CAST(100 AS DOUBLE)) = 0, 'a1', 'b1') AS `_o__c2` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -894,6 +900,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from list_bucketing_dynamic_part where key = '484' and value = 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, `ds`, `hr` +FROM `default`.`list_bucketing_dynamic_part` +WHERE `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out index 993944888a..eac6407403 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out @@ -22,6 +22,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_dynamic_part_n2 partition (ds = '2008-04-08', hr) select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, IF(MOD(CAST(`key` AS DOUBLE), CAST(100 AS DOUBLE)) = 0, 'a1', 'b1') AS `_o__c2` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -457,6 +460,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from list_bucketing_dynamic_part_n2 where key = '484' and value = 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, `ds`, `hr` +FROM `default`.`list_bucketing_dynamic_part_n2` +WHERE `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out index 11d19fd1d2..1e1fc133a7 100644 --- a/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out @@ -22,6 +22,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n0 partition (ds = '2008-04-08', hr = '11') select key, value from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -342,6 +345,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n0 partition (ds = '2008-04-08', hr = '11') select key, value from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -798,6 +804,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from list_bucketing_static_part_n0 where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr` +FROM `default`.`list_bucketing_static_part_n0` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out index b6192a1de0..a09e00759f 100644 --- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out @@ -80,6 +80,9 @@ PREHOOK: query: explain extended SELECT key FROM fact_daily WHERE ( ds='1' and h PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT key FROM fact_daily WHERE ( ds='1' and hr='4') and (key='484' and value= 'val_484') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key` +FROM `default`.`fact_daily` +WHERE `ds` = '1' AND `hr` = '4' AND `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -166,6 +169,9 @@ PREHOOK: query: explain extended SELECT key,value FROM fact_daily WHERE ( ds='1' PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT key,value FROM fact_daily WHERE ( ds='1' and hr='4') and (key='238' and value= 'val_238') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('238' AS STRING) AS `key`, CAST('val_238' AS STRING) AS `value` +FROM `default`.`fact_daily` +WHERE `ds` = '1' AND `hr` = '4' AND `key` = '238' AND `value` = 'val_238' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -253,6 +259,9 @@ PREHOOK: query: explain extended SELECT key FROM fact_daily WHERE ( ds='1' and h PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT key FROM fact_daily WHERE ( ds='1' and hr='4') and (value = "3") POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` +FROM `default`.`fact_daily` +WHERE `ds` = '1' AND `hr` = '4' AND `value` = '3' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -338,6 +347,9 @@ PREHOOK: query: explain extended SELECT key,value FROM fact_daily WHERE ( ds='1' PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT key,value FROM fact_daily WHERE ( ds='1' and hr='4') and key = '495' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('495' AS STRING) AS `key`, `value` +FROM `default`.`fact_daily` +WHERE `ds` = '1' AND `hr` = '4' AND `key` = '495' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out index 8a34b3d85d..6217adb5d4 100644 --- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out @@ -80,6 +80,9 @@ PREHOOK: query: explain extended SELECT key, value FROM fact_daily_n2 WHERE ds=' PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT key, value FROM fact_daily_n2 WHERE ds='1' and hr='4' and value= 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, CAST('val_484' AS STRING) AS `value` +FROM `default`.`fact_daily_n2` +WHERE `ds` = '1' AND `hr` = '4' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -166,6 +169,9 @@ PREHOOK: query: explain extended SELECT key FROM fact_daily_n2 WHERE ds='1' and PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT key FROM fact_daily_n2 WHERE ds='1' and hr='4' and key= '406' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('406' AS STRING) AS `key` +FROM `default`.`fact_daily_n2` +WHERE `ds` = '1' AND `hr` = '4' AND `key` = '406' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -255,6 +261,9 @@ PREHOOK: query: explain extended SELECT key, value FROM fact_daily_n2 WHERE ds=' PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT key, value FROM fact_daily_n2 WHERE ds='1' and hr='4' and ( (key='484' and value ='val_484') or (key='238' and value= 'val_238')) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`fact_daily_n2` +WHERE `ds` = '1' AND `hr` = '4' AND (`key` = '484' AND `value` = 'val_484' OR `key` = '238' AND `value` = 'val_238') STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out index 93bbf58a01..b256f4f879 100644 --- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out @@ -190,6 +190,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from fact_daily_n3 where ds = '1' and hr='1' and key='145' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('145' AS STRING) AS `key`, `value`, CAST('1' AS STRING) AS `ds`, CAST('1' AS STRING) AS `hr` +FROM `default`.`fact_daily_n3` +WHERE `ds` = '1' AND `hr` = '1' AND `key` = '145' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -278,6 +281,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) from fact_daily_n3 where ds = '1' and hr='1' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`fact_daily_n3` +WHERE `ds` = '1' AND `hr` = '1' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -303,6 +309,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT * FROM fact_daily_n3 WHERE ds='1' and hr='2' and (key='484' and value='val_484') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, CAST('1' AS STRING) AS `ds`, CAST('2' AS STRING) AS `hr` +FROM `default`.`fact_daily_n3` +WHERE `ds` = '1' AND `hr` = '2' AND `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -391,6 +400,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT * FROM fact_daily_n3 WHERE ds='1' and hr='3' and (key='327' and value='val_327') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('327' AS STRING) AS `key`, CAST('val_327' AS STRING) AS `value`, CAST('1' AS STRING) AS `ds`, CAST('3' AS STRING) AS `hr` +FROM `default`.`fact_daily_n3` +WHERE `ds` = '1' AND `hr` = '3' AND `key` = '327' AND `value` = 'val_327' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out index 83545beca2..d4304b1af1 100644 --- a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out @@ -131,6 +131,9 @@ PREHOOK: query: explain extended SELECT x FROM fact_daily_n4 WHERE ds='1' and x= PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT x FROM fact_daily_n4 WHERE ds='1' and x=484 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(484 AS INTEGER) AS `x` +FROM `default`.`fact_daily_n4` +WHERE `ds` = '1' AND `x` = 484 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -214,6 +217,9 @@ PREHOOK: query: explain extended SELECT x FROM fact_daily_n4 WHERE ds='1' and x= PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT x FROM fact_daily_n4 WHERE ds='1' and x=495 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(495 AS INTEGER) AS `x` +FROM `default`.`fact_daily_n4` +WHERE `ds` = '1' AND `x` = 495 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -297,6 +303,9 @@ PREHOOK: query: explain extended SELECT x FROM fact_daily_n4 WHERE ds='1' and x= PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT x FROM fact_daily_n4 WHERE ds='1' and x=1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `x` +FROM `default`.`fact_daily_n4` +WHERE `ds` = '1' AND `x` = 1 STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out index b9407f7c95..465805a242 100644 --- a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out @@ -134,6 +134,9 @@ PREHOOK: query: explain extended select x from (select x from fact_daily_n5 wher PREHOOK: type: QUERY POSTHOOK: query: explain extended select x from (select x from fact_daily_n5 where ds = '1') subq where x = 484 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(484 AS INTEGER) AS `x` +FROM `default`.`fact_daily_n5` +WHERE `ds` = '1' AND `x` = 484 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -217,6 +220,9 @@ PREHOOK: query: explain extended select x1, y1 from(select x as x1, y as y1 from PREHOOK: type: QUERY POSTHOOK: query: explain extended select x1, y1 from(select x as x1, y as y1 from fact_daily_n5 where ds ='1') subq where x1 = 484 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(484 AS INTEGER) AS `x1`, `y` AS `y1` +FROM `default`.`fact_daily_n5` +WHERE `ds` = '1' AND `x` = 484 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -300,6 +306,10 @@ PREHOOK: query: explain extended select y, count(1) from fact_daily_n5 where ds PREHOOK: type: QUERY POSTHOOK: query: explain extended select y, count(1) from fact_daily_n5 where ds ='1' and x = 484 group by y POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `y`, COUNT(*) AS `$f1` +FROM `default`.`fact_daily_n5` +WHERE `ds` = '1' AND `x` = 484 +GROUP BY `y` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -440,6 +450,10 @@ PREHOOK: query: explain extended select x, c from (select x, count(1) as c from PREHOOK: type: QUERY POSTHOOK: query: explain extended select x, c from (select x, count(1) as c from fact_daily_n5 where ds = '1' group by x) subq where x = 484 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(484 AS INTEGER) AS `x`, COUNT(*) AS `c` +FROM `default`.`fact_daily_n5` +WHERE `ds` = '1' AND `x` = 484 +GROUP BY CAST(484 AS INTEGER) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out index 0cf1485653..bab5179f09 100644 --- a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out +++ b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out @@ -154,6 +154,9 @@ PREHOOK: query: explain extended SELECT x FROM fact_daily_n0 WHERE ds='1' and no PREHOOK: type: QUERY POSTHOOK: query: explain extended SELECT x FROM fact_daily_n0 WHERE ds='1' and not (x = 86) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `x` +FROM `default`.`fact_daily_n0` +WHERE `ds` = '1' AND `x` <> 86 STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/llap/acid_bucket_pruning.q.out b/ql/src/test/results/clientpositive/llap/acid_bucket_pruning.q.out index 29a05aec69..3a7eb2b902 100644 --- a/ql/src/test/results/clientpositive/llap/acid_bucket_pruning.q.out +++ b/ql/src/test/results/clientpositive/llap/acid_bucket_pruning.q.out @@ -30,6 +30,9 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM acidTblDefault WHERE a = 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `a` +FROM `default`.`acidtbldefault` +WHERE `a` = 1 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/autoColumnStats_1.q.out b/ql/src/test/results/clientpositive/llap/autoColumnStats_1.q.out index 53d27e95f6..ac955588b0 100644 --- a/ql/src/test/results/clientpositive/llap/autoColumnStats_1.q.out +++ b/ql/src/test/results/clientpositive/llap/autoColumnStats_1.q.out @@ -24,6 +24,8 @@ PREHOOK: query: explain extended select * from src_multi1_n1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from src_multi1_n1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src_multi1_n1` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/llap/autoColumnStats_2.q.out b/ql/src/test/results/clientpositive/llap/autoColumnStats_2.q.out index 8e5f2ad4b4..2d58ca09c8 100644 --- a/ql/src/test/results/clientpositive/llap/autoColumnStats_2.q.out +++ b/ql/src/test/results/clientpositive/llap/autoColumnStats_2.q.out @@ -24,6 +24,8 @@ PREHOOK: query: explain extended select * from src_multi1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from src_multi1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src_multi1` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_1.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_1.q.out index 1111761e6e..fc37d0f800 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_1.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_1.q.out @@ -103,6 +103,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n1 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n1 a JOIN bucket_big_n1 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n1` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -382,6 +389,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucket_small_n1 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n1` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -661,6 +675,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucket_small_n1 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n1` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_11.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_11.q.out index d3991d50b9..d69e367fb8 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_11.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_11.q.out @@ -101,6 +101,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n11 a JOIN bu PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n11 a JOIN bucket_big_n11 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n11` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n11` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -408,6 +415,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n11 a JOIN bu PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n11 a JOIN bucket_big_n11 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n11` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n11` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_12.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_12.q.out index fc96404f44..25f45b476b 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_12.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_12.q.out @@ -139,6 +139,18 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n15 a JOIN bu PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n15 a JOIN bucket_medium b ON a.key = b.key JOIN bucket_big_n15 c ON c.key = b.key JOIN bucket_medium d ON c.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n15` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_medium` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n15` +WHERE `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`, +(SELECT 0 AS `DUMMY` +FROM `default`.`bucket_medium`) AS `t5` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_2.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_2.q.out index 10e0e36eb7..04683ef0ab 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_2.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_2.q.out @@ -85,6 +85,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucket_small_n3 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n3` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n3` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -364,6 +371,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucket_small_n3 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n3` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n3` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_3.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_3.q.out index 496bf48abe..d103bbd36c 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_3.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_3.q.out @@ -85,6 +85,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n9 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n9 a JOIN bucket_big_n9 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n9` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n9` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -364,6 +371,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucket_small_n9 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n9` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n9` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -643,6 +657,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucket_small_n9 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n9` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n9` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_4.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_4.q.out index bf191567fe..d2f0fb077e 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_4.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_4.q.out @@ -101,6 +101,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n12 a JOIN bu PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n12 a JOIN bucket_big_n12 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n12` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -380,6 +387,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN buck PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN bucket_small_n12 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n12` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -659,6 +673,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN buck PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN bucket_small_n12 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n12` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_5.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_5.q.out index cae65e4226..7e79bac3d5 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_5.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_5.q.out @@ -66,6 +66,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n0 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n0 a JOIN bucket_big_n0 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n0` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -289,6 +296,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucket_small_n0 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n0` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -512,6 +526,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucket_small_n0 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n0` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_7.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_7.q.out index 6cded28689..0997373510 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_7.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_7.q.out @@ -118,6 +118,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n6 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n6 a JOIN bucket_big_n6 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n6` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -449,6 +456,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucket_small_n6 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n6` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -780,6 +794,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucket_small_n6 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n6` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_8.q.out b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_8.q.out index e658c590b7..2060ba58b8 100644 --- a/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_8.q.out +++ b/ql/src/test/results/clientpositive/llap/auto_sortmerge_join_8.q.out @@ -118,6 +118,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n5 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n5 a JOIN bucket_big_n5 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n5` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -449,6 +456,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucket_small_n5 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n5` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -780,6 +794,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucket_small_n5 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n5` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucket2.q.out b/ql/src/test/results/clientpositive/llap/bucket2.q.out index f0cbd928ba..d0fa92b043 100644 --- a/ql/src/test/results/clientpositive/llap/bucket2.q.out +++ b/ql/src/test/results/clientpositive/llap/bucket2.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket2_1 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucket3.q.out b/ql/src/test/results/clientpositive/llap/bucket3.q.out index 666995c8bf..251fbdb963 100644 --- a/ql/src/test/results/clientpositive/llap/bucket3.q.out +++ b/ql/src/test/results/clientpositive/llap/bucket3.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket3_1 partition (ds='1') select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucket4.q.out b/ql/src/test/results/clientpositive/llap/bucket4.q.out index 5deab2d752..be3f3500bc 100644 --- a/ql/src/test/results/clientpositive/llap/bucket4.q.out +++ b/ql/src/test/results/clientpositive/llap/bucket4.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket4_1 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucket_many.q.out b/ql/src/test/results/clientpositive/llap/bucket_many.q.out index 00b61f2512..80b7b4e565 100644 --- a/ql/src/test/results/clientpositive/llap/bucket_many.q.out +++ b/ql/src/test/results/clientpositive/llap/bucket_many.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket_many select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucket_num_reducers.q.out b/ql/src/test/results/clientpositive/llap/bucket_num_reducers.q.out index f217142f97..ce23bdf279 100644 --- a/ql/src/test/results/clientpositive/llap/bucket_num_reducers.q.out +++ b/ql/src/test/results/clientpositive/llap/bucket_num_reducers.q.out @@ -12,6 +12,8 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended insert overwrite table bucket_nr select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucket_num_reducers2.q.out b/ql/src/test/results/clientpositive/llap/bucket_num_reducers2.q.out index 3189f39112..a767c0ae34 100644 --- a/ql/src/test/results/clientpositive/llap/bucket_num_reducers2.q.out +++ b/ql/src/test/results/clientpositive/llap/bucket_num_reducers2.q.out @@ -12,6 +12,8 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended insert overwrite table test_table_n4 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucketmapjoin1.q.out b/ql/src/test/results/clientpositive/llap/bucketmapjoin1.q.out index 23bbcf0111..e9c84b20cc 100644 --- a/ql/src/test/results/clientpositive/llap/bucketmapjoin1.q.out +++ b/ql/src/test/results/clientpositive/llap/bucketmapjoin1.q.out @@ -32,6 +32,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n1 a join srcbucket_mapjoin_part_2_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -166,6 +173,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n1 a join srcbucket_mapjoin_part_2_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -392,6 +406,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_n1 a join srcbucket_mapjoin_part_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -819,6 +840,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_n1 a join srcbucket_mapjoin_part_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucketmapjoin2.q.out b/ql/src/test/results/clientpositive/llap/bucketmapjoin2.q.out index d69adbe2a0..7532e74e7e 100644 --- a/ql/src/test/results/clientpositive/llap/bucketmapjoin2.q.out +++ b/ql/src/test/results/clientpositive/llap/bucketmapjoin2.q.out @@ -100,6 +100,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n6 a join srcbucket_mapjoin_part_2_n5 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n5` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -532,6 +539,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n6 a join srcbucket_mapjoin_part_2_n5 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n5` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -981,6 +995,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n6 a join srcbucket_mapjoin_part_2_n5 b on a.key=b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_2_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucketmapjoin3.q.out b/ql/src/test/results/clientpositive/llap/bucketmapjoin3.q.out index 887dd42fd3..02169d86c2 100644 --- a/ql/src/test/results/clientpositive/llap/bucketmapjoin3.q.out +++ b/ql/src/test/results/clientpositive/llap/bucketmapjoin3.q.out @@ -124,6 +124,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_2_n11 a join srcbucket_mapjoin_part_n13 b on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n11` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n13` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -556,6 +563,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_2_n11 a join srcbucket_mapjoin_part_n13 b on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n11` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n13` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucketmapjoin4.q.out b/ql/src/test/results/clientpositive/llap/bucketmapjoin4.q.out index 7b73670cf5..42b95cfa0a 100644 --- a/ql/src/test/results/clientpositive/llap/bucketmapjoin4.q.out +++ b/ql/src/test/results/clientpositive/llap/bucketmapjoin4.q.out @@ -124,6 +124,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_n17 a join srcbucket_mapjoin_n17 b on a.key=b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -542,6 +549,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_n17 a join srcbucket_mapjoin_n17 b on a.key=b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/bucketpruning1.q.out b/ql/src/test/results/clientpositive/llap/bucketpruning1.q.out index b435116f45..cc637db05b 100644 --- a/ql/src/test/results/clientpositive/llap/bucketpruning1.q.out +++ b/ql/src/test/results/clientpositive/llap/bucketpruning1.q.out @@ -20,6 +20,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -82,6 +85,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 16 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(16 AS INTEGER) AS `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 16 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -144,6 +150,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 17 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(17 AS INTEGER) AS `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 17 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -206,6 +215,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 16+1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(17 AS INTEGER) AS `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 17 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -268,6 +280,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = '11' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(11 AS INTEGER) AS `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 11 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -330,6 +345,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 and ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 AND `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -392,6 +410,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 and ds='2008-04-08' and value='One' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `key`, CAST('One' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 AND `ds` = '2008-04-08' AND `value` = 'One' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -454,6 +475,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where value='One' and key = 1 and ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `key`, CAST('One' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_pruned` +WHERE `value` = 'One' AND `key` = 1 AND `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -764,6 +788,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where (key=1 or key=2) and ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_pruned` +WHERE (`key` = 1 OR `key` = 2) AND `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -825,6 +852,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where (key=1 or key=2) and value = 'One' and ds='2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, CAST('One' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_pruned` +WHERE (`key` = 1 OR `key` = 2) AND `value` = 'One' AND `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -886,6 +916,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = -15 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(-15 AS INTEGER) AS `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = -15 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1196,6 +1229,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 and ds='2008-04-08' or key = 2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 AND `ds` = '2008-04-08' OR `key` = 2 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1257,6 +1293,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 and ds='2008-04-08' and (value='One' or value = 'Two') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 AND `ds` = '2008-04-08' AND (`value` = 'One' OR `value` = 'Two') STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1318,6 +1357,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 or value = "One" or key = 2 and value = "Two" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 OR `value` = 'One' OR `key` = 2 AND `value` = 'Two' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1379,6 +1421,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 'x11' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE FALSE STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1439,6 +1484,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 or value = "One" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 OR `value` = 'One' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1500,6 +1548,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_pruned where key = 1 or value = "One" or key = 2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`srcbucket_pruned` +WHERE `key` = 1 OR `value` = 'One' OR `key` = 2 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1622,6 +1673,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcbucket_unpruned where key = 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(1 AS INTEGER) AS `key`, `value`, `ds` +FROM `default`.`srcbucket_unpruned` +WHERE `key` = 1 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/current_date_timestamp.q.out b/ql/src/test/results/clientpositive/llap/current_date_timestamp.q.out index 083aab3b0d..6831fb2573 100644 --- a/ql/src/test/results/clientpositive/llap/current_date_timestamp.q.out +++ b/ql/src/test/results/clientpositive/llap/current_date_timestamp.q.out @@ -43,6 +43,8 @@ PREHOOK: query: explain extended select current_timestamp() from alltypesorc PREHOOK: type: QUERY POSTHOOK: query: explain extended select current_timestamp() from alltypesorc POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CURRENT_TIMESTAMP() AS `_o__c0` +FROM `default`.`alltypesorc` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/llap/disable_merge_for_bucketing.q.out b/ql/src/test/results/clientpositive/llap/disable_merge_for_bucketing.q.out index 5e004bfca9..d866636cc1 100644 --- a/ql/src/test/results/clientpositive/llap/disable_merge_for_bucketing.q.out +++ b/ql/src/test/results/clientpositive/llap/disable_merge_for_bucketing.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket2_1_n0 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out index 8f8665a910..1c3a7302de 100644 --- a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out +++ b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out @@ -1537,6 +1537,13 @@ PREHOOK: query: EXPLAIN extended select count(*) from srcpart_date_n7 join srcpa PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN extended select count(*) from srcpart_date_n7 join srcpart_small_n3 on (srcpart_date_n7.key = srcpart_small_n3.key1) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`srcpart_date_n7` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key1` +FROM `default`.`srcpart_small_n3` +WHERE `key1` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out index aa656135ca..eefc7f0972 100644 --- a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out +++ b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_user_level.q.out @@ -801,6 +801,13 @@ PREHOOK: query: EXPLAIN extended select count(*) from srcpart_date_n9 join srcpa PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN extended select count(*) from srcpart_date_n9 join srcpart_small_n4 on (srcpart_date_n9.key = srcpart_small_n4.key1) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`srcpart_date_n9` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key1` +FROM `default`.`srcpart_small_n4` +WHERE `key1` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/extrapolate_part_stats_partial_ndv.q.out b/ql/src/test/results/clientpositive/llap/extrapolate_part_stats_partial_ndv.q.out index 67eabcbaa8..95b570bffe 100644 --- a/ql/src/test/results/clientpositive/llap/extrapolate_part_stats_partial_ndv.q.out +++ b/ql/src/test/results/clientpositive/llap/extrapolate_part_stats_partial_ndv.q.out @@ -255,6 +255,8 @@ PREHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d_n0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d_n0 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid`, `cnt`, `zip` +FROM `default`.`loc_orc_1d_n0` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -632,6 +634,8 @@ PREHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d_n0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d_n0 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid`, `cnt`, `zip` +FROM `default`.`loc_orc_1d_n0` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -1044,6 +1048,8 @@ PREHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_2d_n0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_2d_n0 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `state`, `locid`, `cnt`, `zip` +FROM `default`.`loc_orc_2d_n0` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/llap/filter_join_breaktask.q.out b/ql/src/test/results/clientpositive/llap/filter_join_breaktask.q.out index 4b15ce0b16..79fb6caee3 100644 --- a/ql/src/test/results/clientpositive/llap/filter_join_breaktask.q.out +++ b/ql/src/test/results/clientpositive/llap/filter_join_breaktask.q.out @@ -28,6 +28,16 @@ SELECT f.key, g.value FROM filter_join_breaktask f JOIN filter_join_breaktask m ON( f.key = m.key AND f.ds='2008-04-08' AND m.ds='2008-04-08' AND f.key is not null) JOIN filter_join_breaktask g ON(g.value = m.value AND g.ds='2008-04-08' AND m.ds='2008-04-08' AND m.value is not null AND m.value !='') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t2`.`key`, `t0`.`value` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `value` <> '') AS `t0` +INNER JOIN ((SELECT `key`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `value` <> '' AND `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/filter_union.q.out b/ql/src/test/results/clientpositive/llap/filter_union.q.out index f30024083d..099d07084b 100644 --- a/ql/src/test/results/clientpositive/llap/filter_union.q.out +++ b/ql/src/test/results/clientpositive/llap/filter_union.q.out @@ -24,6 +24,13 @@ select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 )sub where m >2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(`key`) AS `c`, 3 AS `m` +FROM `default`.`src` +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(`key`) AS `c`, 4 AS `m` +FROM `default`.`src` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out b/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out index 48efb808e1..f1b4fb2ed3 100644 --- a/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out +++ b/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out @@ -26,6 +26,16 @@ SELECT x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -561,6 +571,19 @@ FROM src w JOIN src1 x ON (x.value = w.value) JOIN src y ON (x.key = y.key) JOIN src1 z ON (x.key = z.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t6`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value` +FROM `default`.`src` +WHERE `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src1` +WHERE `value` IS NOT NULL AND `key` IS NOT NULL) AS `t4` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL) AS `t6` ON `t4`.`key` = `t6`.`key`) ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -1182,6 +1205,17 @@ SELECT res.key, z.value, res.value FROM (select x.key, x.value from src1 x JOIN src y ON (x.key = y.key)) res JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t5`.`key`, `t0`.`value`, `t5`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `t4`.`key`, `t4`.`value` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) AS `t5` ON `t0`.`value` = `t5`.`value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -1719,6 +1753,16 @@ SELECT res.key, z.value, res.value FROM (select x.key, x.value from src1 x LEFT OUTER JOIN src y ON (x.key = y.key)) res JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t4`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `t3`.`key`, `t3`.`value` +FROM (SELECT `key` +FROM `default`.`src`) AS `t1` +RIGHT JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `value` IS NOT NULL) AS `t3` ON `t1`.`key` = `t3`.`key`) AS `t4` ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/list_bucket_dml_10.q.out b/ql/src/test/results/clientpositive/llap/list_bucket_dml_10.q.out index 5e9d191885..269336764d 100644 --- a/ql/src/test/results/clientpositive/llap/list_bucket_dml_10.q.out +++ b/ql/src/test/results/clientpositive/llap/list_bucket_dml_10.q.out @@ -22,6 +22,8 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11') select key, value from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out b/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out index d289536bf3..2500d58e0a 100644 --- a/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out +++ b/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out @@ -2,6 +2,16 @@ PREHOOK: query: explain extended select srcpart.key from srcpart join src on (sr PREHOOK: type: QUERY POSTHOOK: query: explain extended select srcpart.key from srcpart join src on (srcpart.value=src.value) join src1 on (srcpart.key=src1.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t2`.`key` +FROM (SELECT `value` +FROM `default`.`src` +WHERE `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `value` IS NOT NULL AND `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key` +FROM `default`.`src1` +WHERE `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t2`.`value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/metadataonly1.q.out b/ql/src/test/results/clientpositive/llap/metadataonly1.q.out index 7754ce17cd..061d454954 100644 --- a/ql/src/test/results/clientpositive/llap/metadataonly1.q.out +++ b/ql/src/test/results/clientpositive/llap/metadataonly1.q.out @@ -10,6 +10,8 @@ PREHOOK: query: explain extended select max(ds) from TEST1_n12 PREHOOK: type: QUERY POSTHOOK: query: explain extended select max(ds) from TEST1_n12 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT MAX(`ds`) AS `$f0` +FROM `default`.`test1_n12` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -104,6 +106,8 @@ PREHOOK: query: explain extended select max(ds) from TEST1_n12 PREHOOK: type: QUERY POSTHOOK: query: explain extended select max(ds) from TEST1_n12 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT MAX(`ds`) AS `$f0` +FROM `default`.`test1_n12` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -245,6 +249,8 @@ PREHOOK: query: explain extended select count(distinct ds) from TEST1_n12 PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(distinct ds) from TEST1_n12 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(DISTINCT `ds`) AS `$f0` +FROM `default`.`test1_n12` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -387,6 +393,8 @@ PREHOOK: query: explain extended select count(ds) from TEST1_n12 PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(ds) from TEST1_n12 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(`ds`) AS `$f0` +FROM `default`.`test1_n12` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -538,6 +546,14 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) from TEST1_n12 a2 join (select max(ds) m from TEST1_n12) b on a2.ds=b.m POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `ds` +FROM `default`.`test1_n12` +WHERE `ds` IS NOT NULL) AS `t0` +INNER JOIN (SELECT * +FROM (SELECT MAX(`ds`) AS `$f0` +FROM `default`.`test1_n12`) AS `t1` +WHERE `$f0` IS NOT NULL) AS `t2` ON `t0`.`ds` = `t2`.`$f0` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -945,6 +961,9 @@ PREHOOK: query: explain extended select ds, count(distinct hr) from TEST2_n8 gro PREHOOK: type: QUERY POSTHOOK: query: explain extended select ds, count(distinct hr) from TEST2_n8 group by ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ds`, COUNT(DISTINCT `hr`) AS `$f1` +FROM `default`.`test2_n8` +GROUP BY `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1193,6 +1212,9 @@ PREHOOK: query: explain extended select ds, count(hr) from TEST2_n8 group by ds PREHOOK: type: QUERY POSTHOOK: query: explain extended select ds, count(hr) from TEST2_n8 group by ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ds`, COUNT(`hr`) AS `$f1` +FROM `default`.`test2_n8` +GROUP BY `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1443,6 +1465,8 @@ PREHOOK: query: explain extended select max(ds) from TEST1_n12 PREHOOK: type: QUERY POSTHOOK: query: explain extended select max(ds) from TEST1_n12 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT MAX(`ds`) AS `$f0` +FROM `default`.`test1_n12` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1684,6 +1708,9 @@ PREHOOK: query: explain extended select ds, count(distinct hr) from TEST2_n8 gro PREHOOK: type: QUERY POSTHOOK: query: explain extended select ds, count(distinct hr) from TEST2_n8 group by ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ds`, COUNT(DISTINCT `hr`) AS `$f1` +FROM `default`.`test2_n8` +GROUP BY `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/partition_pruning.q.out b/ql/src/test/results/clientpositive/llap/partition_pruning.q.out index ba863a5fb3..92e9d44081 100644 --- a/ql/src/test/results/clientpositive/llap/partition_pruning.q.out +++ b/ql/src/test/results/clientpositive/llap/partition_pruning.q.out @@ -96,6 +96,9 @@ PREHOOK: query: explain extended select * from daysales where nvl(dt='2001-01-01 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from daysales where nvl(dt='2001-01-01' and customer=1, false) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `customer`, `dt` +FROM `default`.`daysales` +WHERE NVL(`dt` = '2001-01-01' AND `customer` = 1, FALSE) STAGE DEPENDENCIES: Stage-0 is a root stage @@ -167,6 +170,9 @@ PREHOOK: query: explain extended select * from daysales where nvl(dt='2001-01-01 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from daysales where nvl(dt='2001-01-01' or customer=3, false) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `customer`, `dt` +FROM `default`.`daysales` +WHERE NVL(`dt` = '2001-01-01' OR `customer` = 3, FALSE) STAGE DEPENDENCIES: Stage-0 is a root stage @@ -284,6 +290,9 @@ PREHOOK: query: explain extended select * from daysales where nvl(dt='2001-01-01 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from daysales where nvl(dt='2001-01-01' or customer=3, false) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `customer`, `dt` +FROM `default`.`daysales` +WHERE NVL(`dt` = '2001-01-01' OR `customer` = 3, FALSE) STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/llap/ppd_union_view.q.out b/ql/src/test/results/clientpositive/llap/ppd_union_view.q.out index ca1b58fac3..07243b98ed 100644 --- a/ql/src/test/results/clientpositive/llap/ppd_union_view.q.out +++ b/ql/src/test/results/clientpositive/llap/ppd_union_view.q.out @@ -136,6 +136,18 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from t1_n113 where ds = '2011-10-13' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2011-10-13' AS STRING) AS `ds` +FROM (SELECT `key`, `value` +FROM `default`.`t1_new_n0` +WHERE `ds` = '2011-10-13' +UNION ALL +SELECT `t4`.`key`, `t2`.`value` +FROM (SELECT `keymap`, `value`, CAST('2011-10-13' AS STRING) AS `ds` +FROM `default`.`t1_old` +WHERE `ds` = '2011-10-13' AND `keymap` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `keymap`, CAST('2011-10-13' AS STRING) AS `ds` +FROM `default`.`t1_mapping` +WHERE '2011-10-13' = `ds` AND `keymap` IS NOT NULL) AS `t4` ON `t2`.`keymap` = `t4`.`keymap`) AS `t6` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -454,6 +466,18 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from t1_n113 where ds = '2011-10-15' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2011-10-15' AS STRING) AS `ds` +FROM (SELECT `key`, `value` +FROM `default`.`t1_new_n0` +WHERE `ds` = '2011-10-15' +UNION ALL +SELECT `t4`.`key`, `t2`.`value` +FROM (SELECT `keymap`, `value`, CAST('2011-10-15' AS STRING) AS `ds` +FROM `default`.`t1_old` +WHERE `ds` = '2011-10-15' AND `keymap` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `keymap`, CAST('2011-10-15' AS STRING) AS `ds` +FROM `default`.`t1_mapping` +WHERE '2011-10-15' = `ds` AND `keymap` IS NOT NULL) AS `t4` ON `t2`.`keymap` = `t4`.`keymap`) AS `t6` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/smb_mapjoin_15.q.out b/ql/src/test/results/clientpositive/llap/smb_mapjoin_15.q.out index d12294931d..10879024e7 100644 --- a/ql/src/test/results/clientpositive/llap/smb_mapjoin_15.q.out +++ b/ql/src/test/results/clientpositive/llap/smb_mapjoin_15.q.out @@ -38,6 +38,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key = b.key ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`test_table1_n4` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`test_table2_n4` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -329,6 +338,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key = b.key and a.key2 = b.key2 ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `key2`, `value` +FROM `default`.`test_table1_n4` +WHERE `key` IS NOT NULL AND `key2` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `key2`, `value` +FROM `default`.`test_table2_n4` +WHERE `key` IS NOT NULL AND `key2` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` AND `t0`.`key2` = `t2`.`key2` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -597,6 +615,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key2 = b.key2 and a.key = b.key ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `key2`, `value` +FROM `default`.`test_table1_n4` +WHERE `key2` IS NOT NULL AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `key2`, `value` +FROM `default`.`test_table2_n4` +WHERE `key2` IS NOT NULL AND `key` IS NOT NULL) AS `t2` ON `t0`.`key2` = `t2`.`key2` AND `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -865,6 +892,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key = b.key and a.value = b.value ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `key2`, `value` +FROM `default`.`test_table1_n4` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `key2`, `value` +FROM `default`.`test_table2_n4` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` AND `t0`.`value` = `t2`.`value` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/stats11.q.out b/ql/src/test/results/clientpositive/llap/stats11.q.out index e2e72287d1..8b59f722e6 100644 --- a/ql/src/test/results/clientpositive/llap/stats11.q.out +++ b/ql/src/test/results/clientpositive/llap/stats11.q.out @@ -295,6 +295,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_n15 a join srcbucket_mapjoin_part_n16 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n15` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n16` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -722,6 +729,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_n15 a join srcbucket_mapjoin_part_n16 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n15` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n16` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/tez_fixed_bucket_pruning.q.out b/ql/src/test/results/clientpositive/llap/tez_fixed_bucket_pruning.q.out index 6987a96809..36aff41a3b 100644 --- a/ql/src/test/results/clientpositive/llap/tez_fixed_bucket_pruning.q.out +++ b/ql/src/test/results/clientpositive/llap/tez_fixed_bucket_pruning.q.out @@ -453,6 +453,22 @@ where DW.PROJECT_OBJECT_ID =7147200 order by DW.PROJECT_OBJECT_ID, PLAN_KEY, PROJECT_KEY limit 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(7147200 AS BIGINT) AS `project_object_id`, `t9`.`plan_key`, `t9`.`project_key` +FROM (SELECT `t4`.`plan_key`, `t6`.`project_key` +FROM (SELECT `t3`.`l3_snapshot_number`, `t2`.`plan_detail_object_id`, `t2`.`project_object_id`, `t0`.`idp_data_date`, `t0`.`l3_snapshot_number` AS `l3_snapshot_number0`, `t0`.`plan_key`, `t0`.`finplan_detail_object_id` +FROM (SELECT CAST(DATE '2017-12-28' AS DATE) AS `idp_data_date`, `l3_snapshot_number`, `plan_key`, `finplan_detail_object_id` +FROM `default`.`l3_monthly_dw_dimplan` +WHERE `idp_data_date` = DATE '2017-12-28') AS `t0` +RIGHT JOIN ((SELECT `plan_detail_object_id`, CAST(7147200 AS BIGINT) AS `project_object_id` +FROM `default`.`l3_clarity__l3_monthly_dw_factplan_dw_stg_2018022300104_1` +WHERE `project_object_id` = 7147200) AS `t2`, +(SELECT `l3_snapshot_number` +FROM `default`.`l3_clarity__l3_snap_number_2018022300104`) AS `t3`) ON `t0`.`finplan_detail_object_id` = `t2`.`plan_detail_object_id` AND `t0`.`l3_snapshot_number` = `t3`.`l3_snapshot_number`) AS `t4` +LEFT JOIN (SELECT `project_key`, `l3_snapshot_number`, CAST(7147200 AS BIGINT) AS `project_object_id`, CAST(DATE '2017-12-28' AS DATE) AS `idp_data_date` +FROM `default`.`l3_clarity__l3_monthly_dw_factplan_datajoin_1_s2_2018022300104_1` +WHERE `idp_data_date` = DATE '2017-12-28' AND `project_object_id` = 7147200) AS `t6` ON `t4`.`l3_snapshot_number` = `t6`.`l3_snapshot_number` +ORDER BY `t4`.`plan_key`, `t6`.`project_key` +LIMIT 5) AS `t9` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -944,6 +960,22 @@ where DW.PROJECT_OBJECT_ID =7147200 order by DW.PROJECT_OBJECT_ID, PLAN_KEY, PROJECT_KEY limit 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(7147200 AS BIGINT) AS `project_object_id`, `t9`.`plan_key`, `t9`.`project_key` +FROM (SELECT `t4`.`plan_key`, `t6`.`project_key` +FROM (SELECT `t3`.`l3_snapshot_number`, `t2`.`plan_detail_object_id`, `t2`.`project_object_id`, `t0`.`idp_data_date`, `t0`.`l3_snapshot_number` AS `l3_snapshot_number0`, `t0`.`plan_key`, `t0`.`finplan_detail_object_id` +FROM (SELECT CAST(DATE '2017-12-28' AS DATE) AS `idp_data_date`, `l3_snapshot_number`, `plan_key`, `finplan_detail_object_id` +FROM `default`.`l3_monthly_dw_dimplan` +WHERE `idp_data_date` = DATE '2017-12-28') AS `t0` +RIGHT JOIN ((SELECT `plan_detail_object_id`, CAST(7147200 AS BIGINT) AS `project_object_id` +FROM `default`.`l3_clarity__l3_monthly_dw_factplan_dw_stg_2018022300104_1` +WHERE `project_object_id` = 7147200) AS `t2`, +(SELECT `l3_snapshot_number` +FROM `default`.`l3_clarity__l3_snap_number_2018022300104`) AS `t3`) ON `t0`.`finplan_detail_object_id` = `t2`.`plan_detail_object_id` AND `t0`.`l3_snapshot_number` = `t3`.`l3_snapshot_number`) AS `t4` +LEFT JOIN (SELECT `project_key`, `l3_snapshot_number`, CAST(7147200 AS BIGINT) AS `project_object_id`, CAST(DATE '2017-12-28' AS DATE) AS `idp_data_date` +FROM `default`.`l3_clarity__l3_monthly_dw_factplan_datajoin_1_s2_2018022300104_1` +WHERE `idp_data_date` = DATE '2017-12-28' AND `project_object_id` = 7147200) AS `t6` ON `t4`.`l3_snapshot_number` = `t6`.`l3_snapshot_number` +ORDER BY `t4`.`plan_key`, `t6`.`project_key` +LIMIT 5) AS `t9` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out b/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out index 606c38481e..849a69139b 100644 --- a/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out +++ b/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out @@ -148,6 +148,13 @@ inner join service_request_clean b on a.contact_event_id = b.cnctevn_id POSTHOOK: type: CREATETABLE_AS_SELECT +OPTIMIZED SQL: SELECT `t0`.`contact_event_id`, `t0`.`ce_create_dt`, `t0`.`ce_end_dt`, `t0`.`contact_type`, `t0`.`cnctevs_cd`, `t0`.`contact_mode`, `t0`.`cntvnst_stts_cd`, `t0`.`total_transfers`, `t0`.`ce_notes`, `t2`.`svcrqst_id`, `t2`.`svcrqct_cds`, `t2`.`svcrtyp_cd`, `t2`.`cmpltyp_cd`, `t2`.`sum_reason_cd` AS `src`, `t2`.`cnctmd_cd`, `t2`.`notes` +FROM (SELECT `contact_event_id`, `ce_create_dt`, `ce_end_dt`, `contact_type`, `cnctevs_cd`, `contact_mode`, `cntvnst_stts_cd`, `total_transfers`, `ce_notes` +FROM `default`.`ct_events_clean` +WHERE `contact_event_id` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `cnctevn_id`, `svcrqst_id`, `cnctmd_cd`, `svcrtyp_cd`, `cmpltyp_cd`, `sum_reason_cd`, `svcrqct_cds`, `notes` +FROM `default`.`service_request_clean` +WHERE `cnctevn_id` IS NOT NULL) AS `t2` ON `t0`.`contact_event_id` = `t2`.`cnctevn_id` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -1139,6 +1146,13 @@ inner join service_request_clean b on a.contact_event_id = b.cnctevn_id POSTHOOK: type: CREATETABLE_AS_SELECT +OPTIMIZED SQL: SELECT `t0`.`contact_event_id`, `t0`.`ce_create_dt`, `t0`.`ce_end_dt`, `t0`.`contact_type`, `t0`.`cnctevs_cd`, `t0`.`contact_mode`, `t0`.`cntvnst_stts_cd`, `t0`.`total_transfers`, `t0`.`ce_notes`, `t2`.`svcrqst_id`, `t2`.`svcrqct_cds`, `t2`.`svcrtyp_cd`, `t2`.`cmpltyp_cd`, `t2`.`sum_reason_cd` AS `src`, `t2`.`cnctmd_cd`, `t2`.`notes` +FROM (SELECT `contact_event_id`, `ce_create_dt`, `ce_end_dt`, `contact_type`, `cnctevs_cd`, `contact_mode`, `cntvnst_stts_cd`, `total_transfers`, `ce_notes` +FROM `default`.`ct_events_clean` +WHERE `contact_event_id` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `cnctevn_id`, `svcrqst_id`, `cnctmd_cd`, `svcrtyp_cd`, `cmpltyp_cd`, `sum_reason_cd`, `svcrqct_cds`, `notes` +FROM `default`.`service_request_clean` +WHERE `cnctevn_id` IS NOT NULL) AS `t2` ON `t0`.`contact_event_id` = `t2`.`cnctevn_id` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/unionDistinct_1.q.out b/ql/src/test/results/clientpositive/llap/unionDistinct_1.q.out index 101a9f8b52..ff801321ad 100644 --- a/ql/src/test/results/clientpositive/llap/unionDistinct_1.q.out +++ b/ql/src/test/results/clientpositive/llap/unionDistinct_1.q.out @@ -3755,6 +3755,19 @@ where a.k1 > 20 ) subq POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `k1`, `k2`, `k3`, `k4` +FROM (SELECT `k1`, `k2`, `k3`, `k4` +FROM `default`.`dst_union22_delta_n0` +WHERE `ds` = '1' AND `k0` <= 50 +UNION ALL +SELECT `t2`.`k1`, `t2`.`k2`, `t4`.`k3`, `t4`.`k4` +FROM (SELECT `k1`, `k2`, `ds` +FROM `default`.`dst_union22_n0` +WHERE `k1` > 20) AS `t2` +LEFT JOIN (SELECT `k1`, `k3`, `k4` +FROM `default`.`dst_union22_delta_n0` +WHERE `ds` = '1' AND `k0` > 50 AND `k1` > 20) AS `t4` ON `t2`.`k1` = `t4`.`k1` AND `t2`.`ds` = '1') +GROUP BY `k1`, `k2`, `k3`, `k4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -5059,6 +5072,28 @@ select s.key, s.count from ( select key, count(1) as count from src5_n1 where key < 10 group by key )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM (SELECT `key`, `count` +FROM (SELECT `key`, `count` +FROM (SELECT `key`, `count` +FROM `default`.`src2_n2` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3` +WHERE `key` < 10) +GROUP BY `key`, `count` +UNION ALL +SELECT `key`, `count` +FROM `default`.`src4` +WHERE `key` < 10) +GROUP BY `key`, `count` +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`src5_n1` +WHERE `key` < 10 +GROUP BY `key`) +GROUP BY `key`, `count` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -5578,6 +5613,25 @@ select s.key, s.count from ( select a.key as key, b.count as count from src4 a join src5_n1 b on a.key=b.key where a.key < 10 )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM (SELECT `key`, `count` +FROM (SELECT `key`, `count` +FROM `default`.`src2_n2` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3` +WHERE `key` < 10) +GROUP BY `key`, `count` +UNION ALL +SELECT `t6`.`key`, `t8`.`count` +FROM (SELECT `key` +FROM `default`.`src4` +WHERE `key` < 10) AS `t6` +INNER JOIN (SELECT `key`, `count` +FROM `default`.`src5_n1` +WHERE `key` < 10) AS `t8` ON `t6`.`key` = `t8`.`key`) +GROUP BY `key`, `count` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -6064,6 +6118,26 @@ select s.key, s.count from ( select a.key as key, count(1) as count from src4 a join src5_n1 b on a.key=b.key where a.key < 10 group by a.key )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM (SELECT `key`, `count` +FROM (SELECT `key`, `count` +FROM `default`.`src2_n2` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3` +WHERE `key` < 10) +GROUP BY `key`, `count` +UNION ALL +SELECT `t6`.`key`, COUNT(*) AS `$f1` +FROM (SELECT `key` +FROM `default`.`src4` +WHERE `key` < 10) AS `t6` +INNER JOIN (SELECT `key` +FROM `default`.`src5_n1` +WHERE `key` < 10) AS `t8` ON `t6`.`key` = `t8`.`key` +GROUP BY `t6`.`key`) +GROUP BY `key`, `count` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/llap/union_stats.q.out b/ql/src/test/results/clientpositive/llap/union_stats.q.out index cea4847ca1..f9524f58d1 100644 --- a/ql/src/test/results/clientpositive/llap/union_stats.q.out +++ b/ql/src/test/results/clientpositive/llap/union_stats.q.out @@ -2,6 +2,11 @@ PREHOOK: query: explain extended create table t as select * from src union all s PREHOOK: type: CREATETABLE_AS_SELECT POSTHOOK: query: explain extended create table t as select * from src union all select * from src POSTHOOK: type: CREATETABLE_AS_SELECT +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` +UNION ALL +SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -430,80 +435,80 @@ Stage-5 Dependency Collection{} Stage-3 Reducer 3 llap - File Output Operator [FS_6] - Group By Operator [GBY_4] (rows=1 width=880) + File Output Operator [FS_14] + Group By Operator [GBY_12] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"] <-Union 2 [CUSTOM_SIMPLE_EDGE] <-Map 1 [CONTAINS] llap - File Output Operator [FS_7] + File Output Operator [FS_36] table:{"name:":"default.t1"} - Select Operator [SEL_1] (rows=500 width=178) + Select Operator [SEL_34] (rows=500 width=178) Output:["_col0","_col1"] - TableScan [TS_0] (rows=500 width=178) + TableScan [TS_33] (rows=500 width=178) Output:["key","value"] - Reduce Output Operator [RS_3] - Group By Operator [GBY_2] (rows=1 width=880) + Reduce Output Operator [RS_45] + Group By Operator [GBY_42] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"] - Select Operator [SEL_1] (rows=1000 width=178) + Select Operator [SEL_37] (rows=1000 width=178) Output:["key","value"] - Please refer to the previous Select Operator [SEL_1] - File Output Operator [FS_9] + Please refer to the previous Select Operator [SEL_34] + File Output Operator [FS_38] table:{"name:":"default.t2"} - Please refer to the previous Select Operator [SEL_1] - Reduce Output Operator [RS_3] - Group By Operator [GBY_2] (rows=1 width=880) + Please refer to the previous Select Operator [SEL_34] + Reduce Output Operator [RS_46] + Group By Operator [GBY_43] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"] - Select Operator [SEL_1] (rows=1000 width=178) + Select Operator [SEL_39] (rows=1000 width=178) Output:["key","value"] - Please refer to the previous Select Operator [SEL_1] - File Output Operator [FS_11] + Please refer to the previous Select Operator [SEL_34] + File Output Operator [FS_40] table:{"name:":"default.t3"} - Please refer to the previous Select Operator [SEL_1] - Reduce Output Operator [RS_3] - Group By Operator [GBY_2] (rows=1 width=880) + Please refer to the previous Select Operator [SEL_34] + Reduce Output Operator [RS_47] + Group By Operator [GBY_44] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"] - Select Operator [SEL_1] (rows=1000 width=178) + Select Operator [SEL_41] (rows=1000 width=178) Output:["key","value"] - Please refer to the previous Select Operator [SEL_1] + Please refer to the previous Select Operator [SEL_34] <-Map 6 [CONTAINS] llap - File Output Operator [FS_7] + File Output Operator [FS_51] table:{"name:":"default.t1"} - Select Operator [SEL_3] (rows=500 width=178) + Select Operator [SEL_49] (rows=500 width=178) Output:["_col0","_col1"] - TableScan [TS_2] (rows=500 width=178) + TableScan [TS_48] (rows=500 width=178) Output:["key","value"] - Reduce Output Operator [RS_3] - Group By Operator [GBY_2] (rows=1 width=880) + Reduce Output Operator [RS_60] + Group By Operator [GBY_57] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"] - Select Operator [SEL_1] (rows=1000 width=178) + Select Operator [SEL_52] (rows=1000 width=178) Output:["key","value"] - Please refer to the previous Select Operator [SEL_3] - File Output Operator [FS_9] + Please refer to the previous Select Operator [SEL_49] + File Output Operator [FS_53] table:{"name:":"default.t2"} - Please refer to the previous Select Operator [SEL_3] - Reduce Output Operator [RS_3] - Group By Operator [GBY_2] (rows=1 width=880) + Please refer to the previous Select Operator [SEL_49] + Reduce Output Operator [RS_61] + Group By Operator [GBY_58] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"] - Select Operator [SEL_1] (rows=1000 width=178) + Select Operator [SEL_54] (rows=1000 width=178) Output:["key","value"] - Please refer to the previous Select Operator [SEL_3] - File Output Operator [FS_11] + Please refer to the previous Select Operator [SEL_49] + File Output Operator [FS_55] table:{"name:":"default.t3"} - Please refer to the previous Select Operator [SEL_3] - Reduce Output Operator [RS_3] - Group By Operator [GBY_2] (rows=1 width=880) + Please refer to the previous Select Operator [SEL_49] + Reduce Output Operator [RS_62] + Group By Operator [GBY_59] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"] - Select Operator [SEL_1] (rows=1000 width=178) + Select Operator [SEL_56] (rows=1000 width=178) Output:["key","value"] - Please refer to the previous Select Operator [SEL_3] + Please refer to the previous Select Operator [SEL_49] Reducer 4 llap - File Output Operator [FS_6] - Group By Operator [GBY_4] (rows=1 width=880) + File Output Operator [FS_23] + Group By Operator [GBY_21] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"] <- Please refer to the previous Union 2 [CUSTOM_SIMPLE_EDGE] Reducer 5 llap - File Output Operator [FS_6] - Group By Operator [GBY_4] (rows=1 width=880) + File Output Operator [FS_32] + Group By Operator [GBY_30] (rows=1 width=880) Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"] <- Please refer to the previous Union 2 [CUSTOM_SIMPLE_EDGE] Stage-6 diff --git a/ql/src/test/results/clientpositive/llap/vectorization_0.q.out b/ql/src/test/results/clientpositive/llap/vectorization_0.q.out index d882657ccf..7abdc3c9a4 100644 --- a/ql/src/test/results/clientpositive/llap/vectorization_0.q.out +++ b/ql/src/test/results/clientpositive/llap/vectorization_0.q.out @@ -1791,6 +1791,9 @@ select count(*) from alltypesorc where (((cstring1 LIKE 'a%') or ((cstring1 like 'b%') or (cstring1 like 'c%'))) or ((length(cstring1) < 50 ) and ((cstring1 like '%n') and (length(cstring1) > 0)))) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`alltypesorc` +WHERE `cstring1` LIKE 'a%' OR `cstring1` LIKE 'b%' OR `cstring1` LIKE 'c%' OR CHARACTER_LENGTH(`cstring1`) < 50 AND `cstring1` LIKE '%n' AND CHARACTER_LENGTH(`cstring1`) > 0 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30606,6 +30609,9 @@ POSTHOOK: query: explain extended select * from alltypesorc where (cint=47 and cfloat=2.09) or (cint=45 and cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesorc` +WHERE `cint` = 49 AND `cfloat` = 3.5 OR `cint` = 47 AND `cfloat` = 2.09 OR `cint` = 45 AND `cfloat` = 3.02 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30842,6 +30848,9 @@ POSTHOOK: query: explain extended select * from alltypesorc where (cint=47 or cfloat=2.09) and (cint=45 or cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesorc` +WHERE (`cint` = 49 OR `cfloat` = 3.5) AND (`cint` = 47 OR `cfloat` = 2.09) AND (`cint` = 45 OR `cfloat` = 3.02) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/louter_join_ppr.q.out b/ql/src/test/results/clientpositive/louter_join_ppr.q.out index df11f519a3..b77c91a6c6 100644 --- a/ql/src/test/results/clientpositive/louter_join_ppr.q.out +++ b/ql/src/test/results/clientpositive/louter_join_ppr.q.out @@ -16,6 +16,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -316,6 +323,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` < 20 AND `ds` = '2008-04-08' AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -620,6 +634,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -920,6 +941,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` < 20 AND `ds` = '2008-04-08' AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/macro.q.out b/ql/src/test/results/clientpositive/macro.q.out index a40d88871c..70281acc0b 100644 --- a/ql/src/test/results/clientpositive/macro.q.out +++ b/ql/src/test/results/clientpositive/macro.q.out @@ -41,6 +41,9 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT SIGMOID(2) FROM src LIMIT 1 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT SIGMOID(2) FROM src LIMIT 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(0.8807970779778823 AS DOUBLE) AS `_o__c0` +FROM `default`.`src` +LIMIT 1 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -111,6 +114,9 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT FIXED_NUMBER() + 1 FROM src LIMIT 1 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT FIXED_NUMBER() + 1 FROM src LIMIT 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(2 AS INTEGER) AS `_o__c0` +FROM `default`.`src` +LIMIT 1 STAGE DEPENDENCIES: Stage-0 is a root stage @@ -208,6 +214,9 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT SIMPLE_ADD(1, 9) FROM src LIMIT 1 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT SIMPLE_ADD(1, 9) FROM src LIMIT 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(10 AS INTEGER) AS `_o__c0` +FROM `default`.`src` +LIMIT 1 STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out b/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out index a62c798261..b4634809ba 100644 --- a/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out +++ b/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out @@ -2,6 +2,16 @@ PREHOOK: query: explain extended select srcpart.key from srcpart join src on (sr PREHOOK: type: QUERY POSTHOOK: query: explain extended select srcpart.key from srcpart join src on (srcpart.value=src.value) join src1 on (srcpart.key=src1.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t2`.`key` +FROM (SELECT `value` +FROM `default`.`src` +WHERE `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `value` IS NOT NULL AND `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key` +FROM `default`.`src1` +WHERE `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t2`.`value` STAGE DEPENDENCIES: Stage-7 is a root stage Stage-5 depends on stages: Stage-7 diff --git a/ql/src/test/results/clientpositive/merge3.q.out b/ql/src/test/results/clientpositive/merge3.q.out index 961fae3d94..dd400c5651 100644 --- a/ql/src/test/results/clientpositive/merge3.q.out +++ b/ql/src/test/results/clientpositive/merge3.q.out @@ -57,6 +57,8 @@ POSTHOOK: query: explain extended create table merge_src2 as select key, value from merge_src POSTHOOK: type: CREATETABLE_AS_SELECT +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`merge_src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 @@ -2374,6 +2376,9 @@ insert overwrite table merge_src_part2 partition(ds) select key, value, ds from merge_src_part where ds is not null POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`merge_src_part` +WHERE `ds` IS NOT NULL STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 diff --git a/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out b/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out index cce59b0666..f7475f5984 100644 --- a/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out +++ b/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out @@ -4,6 +4,11 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT srcpart.key, substr(srcpart.value,5) as csubstr, ds, hr FROM srcpart ORDER BY srcpart.key, csubstr, ds, hr LIMIT 400,10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, SUBSTR(`value`, 5) AS `csubstr`, `ds`, `hr` +FROM `default`.`srcpart` +ORDER BY `key`, SUBSTR(`value`, 5), `ds`, `hr` +LIMIT 10 +OFFSET 400 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -305,6 +310,11 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT srcpart.key, substr(srcpart.value,5) as csubstr, ds, hr FROM srcpart ORDER BY srcpart.key, csubstr, ds, hr LIMIT 490,10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, SUBSTR(`value`, 5) AS `csubstr`, `ds`, `hr` +FROM `default`.`srcpart` +ORDER BY `key`, SUBSTR(`value`, 5), `ds`, `hr` +LIMIT 10 +OFFSET 490 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -606,6 +616,11 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT srcpart.key, substr(srcpart.value,5) as csubstr, ds, hr FROM srcpart ORDER BY srcpart.key, csubstr, ds, hr LIMIT 490,20 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, SUBSTR(`value`, 5) AS `csubstr`, `ds`, `hr` +FROM `default`.`srcpart` +ORDER BY `key`, SUBSTR(`value`, 5), `ds`, `hr` +LIMIT 20 +OFFSET 490 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -917,6 +932,11 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT srcpart.key, substr(srcpart.value,5) as csubstr, ds, hr FROM srcpart ORDER BY srcpart.key, csubstr, ds, hr LIMIT 490,600 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, SUBSTR(`value`, 5) AS `csubstr`, `ds`, `hr` +FROM `default`.`srcpart` +ORDER BY `key`, SUBSTR(`value`, 5), `ds`, `hr` +LIMIT 600 +OFFSET 490 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/outer_join_ppr.q.out b/ql/src/test/results/clientpositive/outer_join_ppr.q.out index 6aaf91ca4b..5fcba1362d 100644 --- a/ql/src/test/results/clientpositive/outer_join_ppr.q.out +++ b/ql/src/test/results/clientpositive/outer_join_ppr.q.out @@ -16,6 +16,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -316,6 +323,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out b/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out index f8aee50dfc..01f89513c3 100644 --- a/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out +++ b/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out @@ -1685,6 +1685,9 @@ select count(*) from alltypesparquet where (((cstring1 LIKE 'a%') or ((cstring1 like 'b%') or (cstring1 like 'c%'))) or ((length(cstring1) < 50 ) and ((cstring1 like '%n') and (length(cstring1) > 0)))) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`alltypesparquet` +WHERE `cstring1` LIKE 'a%' OR `cstring1` LIKE 'b%' OR `cstring1` LIKE 'c%' OR CHARACTER_LENGTH(`cstring1`) < 50 AND `cstring1` LIKE '%n' AND CHARACTER_LENGTH(`cstring1`) > 0 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30491,6 +30494,9 @@ POSTHOOK: query: explain extended select * from alltypesparquet where (cint=47 and cfloat=2.09) or (cint=45 and cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesparquet` +WHERE `cint` = 49 AND `cfloat` = 3.5 OR `cint` = 47 AND `cfloat` = 2.09 OR `cint` = 45 AND `cfloat` = 3.02 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30718,6 +30724,9 @@ POSTHOOK: query: explain extended select * from alltypesparquet where (cint=47 or cfloat=2.09) and (cint=45 or cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesparquet` +WHERE (`cint` = 49 OR `cfloat` = 3.5) AND (`cint` = 47 OR `cfloat` = 2.09) AND (`cint` = 45 OR `cfloat` = 3.02) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/pcr.q.out b/ql/src/test/results/clientpositive/pcr.q.out index 1f2a27ea22..1d203f7395 100644 --- a/ql/src/test/results/clientpositive/pcr.q.out +++ b/ql/src/test/results/clientpositive/pcr.q.out @@ -52,6 +52,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` <= '2000-04-09' AND `key` < 5 +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -245,6 +249,10 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-04-09' or key<5 order by key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`pcr_t1` +WHERE `ds` <= '2000-04-09' OR `key` < 5 +ORDER BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -524,6 +532,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 and value != 'val_2' order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` <= '2000-04-09' AND `key` < 5 AND `value` <> 'val_2' +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -719,6 +731,10 @@ POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds < '2000-04-09' and key < 5) or (ds > '2000-04-09' and value == 'val_5') order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` < '2000-04-09' AND `key` < 5 OR `ds` > '2000-04-09' AND `value` = 'val_5' +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -916,6 +932,10 @@ POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds < '2000-04-10' and key < 5) or (ds > '2000-04-08' and value == 'val_5') order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` < '2000-04-10' AND `key` < 5 OR `ds` > '2000-04-08' AND `value` = 'val_5' +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1172,6 +1192,10 @@ POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds < '2000-04-10' or key < 5) and (ds > '2000-04-08' or value == 'val_5') order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE (`ds` < '2000-04-10' OR `key` < 5) AND (`ds` > '2000-04-08' OR `value` = 'val_5') +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1436,6 +1460,11 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-04-08' or ds='2000-04-09') and key=14 order by key, value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(14 AS INTEGER) AS `key`, `value` +FROM (SELECT `value` +FROM `default`.`pcr_t1` +WHERE (`ds` = '2000-04-08' OR `ds` = '2000-04-09') AND `key` = 14 +ORDER BY `value`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1618,6 +1647,10 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04-08' or ds='2000-04-09' order by key, value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' OR `ds` = '2000-04-09' +ORDER BY `key`, `value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1836,6 +1869,10 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-04-08' or ds<'2000-04-10' order by key, value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`pcr_t1` +WHERE `ds` >= '2000-04-08' OR `ds` < '2000-04-10' +ORDER BY `key`, `value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2125,6 +2162,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='2000-04-08' and key=1) or (ds='2000-04-09' and key=2) order by key, value, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` = 1 OR `ds` = '2000-04-09' AND `key` = 2 +ORDER BY `key`, `value`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2308,6 +2349,15 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-08' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-08' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -2575,6 +2625,15 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-09' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-09' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-09' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-09' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -2903,6 +2962,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds>='2000-04-08' and ds<='2000-04-11' and key=2) order by key, value, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` > '2000-04-08' AND `ds` < '2000-04-11' OR `ds` >= '2000-04-08' AND `ds` <= '2000-04-11' AND `key` = 2 +ORDER BY `key`, `value`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3229,6 +3292,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds<='2000-04-09' and key=2) order by key, value, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` > '2000-04-08' AND `ds` < '2000-04-11' OR `ds` <= '2000-04-09' AND `key` = 2 +ORDER BY `key`, `value`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -4715,6 +4782,11 @@ PREHOOK: query: explain extended select key, value from srcpart where ds='2008-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from srcpart where ds='2008-04-08' and hr=11 order by key limit 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 +ORDER BY `key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -4847,6 +4919,11 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where ds PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where ds='2008-04-08' and (hr='11' or hr='12') and key=11 order by key, ds, hr POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM (SELECT `key`, `value`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND (`hr` = '11' OR `hr` = '12') AND `key` = 11 +ORDER BY `key`, `hr`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -5034,6 +5111,11 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where hr PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where hr='11' and key=11 order by key, ds, hr POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds`, CAST('11' AS STRING) AS `hr` +FROM (SELECT `key`, `value`, `ds` +FROM `default`.`srcpart` +WHERE `hr` = '11' AND `key` = 11 +ORDER BY `key`, `ds`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/plan_json.q.out b/ql/src/test/results/clientpositive/plan_json.q.out index ac9fdecd77..f1212efee4 100644 --- a/ql/src/test/results/clientpositive/plan_json.q.out +++ b/ql/src/test/results/clientpositive/plan_json.q.out @@ -2,4 +2,4 @@ PREHOOK: query: EXPLAIN FORMATTED SELECT count(1) FROM src PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN FORMATTED SELECT count(1) FROM src POSTHOOK: type: QUERY -{"STAGE DEPENDENCIES":{"Stage-0":{"ROOT STAGE":"TRUE"}},"STAGE PLANS":{"Stage-0":{"Fetch Operator":{"limit:":"1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_7"}}}}}} +{"optimizedSQL":"SELECT COUNT(*) AS `$f0`\nFROM `default`.`src`","STAGE DEPENDENCIES":{"Stage-0":{"ROOT STAGE":"TRUE"}},"STAGE PLANS":{"Stage-0":{"Fetch Operator":{"limit:":"1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_7"}}}}}} diff --git a/ql/src/test/results/clientpositive/pointlookup2.q.out b/ql/src/test/results/clientpositive/pointlookup2.q.out index 8debfad5f7..1eba541ff0 100644 --- a/ql/src/test/results/clientpositive/pointlookup2.q.out +++ b/ql/src/test/results/clientpositive/pointlookup2.q.out @@ -98,6 +98,10 @@ from pcr_t1_n2 where (ds='2000-04-08' and key=1) or (ds='2000-04-09' and key=2) order by key, value, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' AND `key` = 1 OR `ds` = '2000-04-09' AND `key` = 2 +ORDER BY `key`, `value`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -276,6 +280,15 @@ from pcr_t1_n2 t1 join pcr_t1_n2 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-08' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-08' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -503,6 +516,15 @@ from pcr_t1_n2 t1 join pcr_t1_n2 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-09' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-09' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-09' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-09' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -780,6 +802,14 @@ from pcr_t1_n2 t1 join pcr_t2_n0 t2 where (t1.ds='2000-04-08' and t2.key=1) or (t1.ds='2000-04-09' and t2.key=2) order by t2.key, t2.value, t1.ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' OR `ds` = '2000-04-09') AS `t0` +INNER JOIN (SELECT `ds`, `key`, `value` +FROM `default`.`pcr_t2_n0` +WHERE `key` = 1 OR `key` = 2) AS `t2` ON `t0`.`ds` = '2000-04-08' AND `t2`.`key` = 1 OR `t0`.`ds` = '2000-04-09' AND `t2`.`key` = 2 +ORDER BY `t2`.`key`, `t2`.`value`, `t0`.`ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -1098,6 +1128,14 @@ from pcr_t1_n2 t1 join pcr_t2_n0 t2 where (t2.ds='2000-04-08' and t1.key=1) or (t2.ds='2000-04-09' and t1.key=2) order by t1.key, t1.value, t2.ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1_n2` +WHERE `key` = 1 OR `key` = 2) AS `t0` +INNER JOIN (SELECT `ds`, `key`, `value` +FROM `default`.`pcr_t2_n0` +WHERE `ds` = '2000-04-08' OR `ds` = '2000-04-09') AS `t2` ON `t2`.`ds` = '2000-04-08' AND `t0`.`key` = 1 OR `t2`.`ds` = '2000-04-09' AND `t0`.`key` = 2 +ORDER BY `t0`.`key`, `t0`.`value`, `t2`.`ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -1824,6 +1862,15 @@ from pcr_t1_n2 t1 join pcr_t1_n2 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-08' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-08' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -2051,6 +2098,15 @@ from pcr_t1_n2 t1 join pcr_t1_n2 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-09' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-09' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-09' AS STRING) AS `ds` +FROM `default`.`pcr_t1_n2` +WHERE `ds` = '2000-04-09' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/pointlookup3.q.out b/ql/src/test/results/clientpositive/pointlookup3.q.out index b22f2e3a55..8835d4188c 100644 --- a/ql/src/test/results/clientpositive/pointlookup3.q.out +++ b/ql/src/test/results/clientpositive/pointlookup3.q.out @@ -52,6 +52,10 @@ from pcr_t1_n1 where (ds1='2000-04-08' and key=1) or (ds1='2000-04-09' and key=2) order by key, value, ds1, ds2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-08' AND `key` = 1 OR `ds1` = '2000-04-09' AND `key` = 2 +ORDER BY `key`, `value`, `ds1`, `ds2` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -232,6 +236,11 @@ from pcr_t1_n1 where (ds1='2000-04-08' and ds2='2001-04-08' and key=1) or (ds1='2000-04-09' and ds2='2001-04-08' and key=2) order by key, value, ds1, ds2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds1`, CAST('2001-04-08' AS STRING) AS `ds2` +FROM (SELECT `key`, `value`, `ds1` +FROM `default`.`pcr_t1_n1` +WHERE `ds2` = '2001-04-08' AND (`ds1` = '2000-04-08' AND `key` = 1 OR `ds1` = '2000-04-09' AND `key` = 2) +ORDER BY `key`, `value`, `ds1`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -362,6 +371,15 @@ from pcr_t1_n1 t1 join pcr_t1_n1 t2 on t1.key=t2.key and t1.ds1='2000-04-08' and t2.ds2='2001-04-08' order by t2.key, t2.value, t1.ds1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds1`, `t4`.`ds2`, `t4`.`key1`, `t4`.`value1`, `t4`.`ds11`, CAST('2001-04-08' AS STRING) AS `ds21` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t0`.`ds2`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1`, `t2`.`ds1` AS `ds11` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, `ds1`, CAST('2001-04-08' AS STRING) AS `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds2` = '2001-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t2`.`key`, `t2`.`value`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -590,6 +608,15 @@ from pcr_t1_n1 t1 join pcr_t1_n1 t2 on t1.key=t2.key and t1.ds1='2000-04-08' and t2.ds1='2000-04-09' order by t2.key, t2.value, t1.ds1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds1`, `t4`.`ds2`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-09' AS STRING) AS `ds11`, `t4`.`ds21` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t0`.`ds2`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1`, `t2`.`ds2` AS `ds21` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-09' AS STRING) AS `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-09' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t2`.`key`, `t2`.`value`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -869,6 +896,14 @@ from pcr_t1_n1 t1 join pcr_t1_n1 t2 where (t1.ds1='2000-04-08' and t2.key=1) or (t1.ds1='2000-04-09' and t2.key=2) order by t2.key, t2.value, t1.ds1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value`, `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-08' OR `ds1` = '2000-04-09') AS `t0` +INNER JOIN (SELECT `key`, `value`, `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `key` = 1 OR `key` = 2) AS `t2` ON `t0`.`ds1` = '2000-04-08' AND `t2`.`key` = 1 OR `t0`.`ds1` = '2000-04-09' AND `t2`.`key` = 2 +ORDER BY `t2`.`key`, `t2`.`value`, `t0`.`ds1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -1725,6 +1760,15 @@ from pcr_t1_n1 t1 join pcr_t1_n1 t2 on t1.key=t2.key and t1.ds1='2000-04-08' and t2.ds2='2001-04-08' order by t2.key, t2.value, t1.ds1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds1`, `t4`.`ds2`, `t4`.`key1`, `t4`.`value1`, `t4`.`ds11`, CAST('2001-04-08' AS STRING) AS `ds21` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t0`.`ds2`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1`, `t2`.`ds1` AS `ds11` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, `ds1`, CAST('2001-04-08' AS STRING) AS `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds2` = '2001-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t2`.`key`, `t2`.`value`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 @@ -1953,6 +1997,15 @@ from pcr_t1_n1 t1 join pcr_t1_n1 t2 on t1.key=t2.key and t1.ds1='2000-04-08' and t2.ds1='2000-04-09' order by t2.key, t2.value, t1.ds1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds1`, `t4`.`ds2`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-09' AS STRING) AS `ds11`, `t4`.`ds21` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t0`.`ds2`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1`, `t2`.`ds2` AS `ds21` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-09' AS STRING) AS `ds1`, `ds2` +FROM `default`.`pcr_t1_n1` +WHERE `ds1` = '2000-04-09' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t2`.`key`, `t2`.`value`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/pointlookup4.q.out b/ql/src/test/results/clientpositive/pointlookup4.q.out index 771f888ea4..63a0e37f2f 100644 --- a/ql/src/test/results/clientpositive/pointlookup4.q.out +++ b/ql/src/test/results/clientpositive/pointlookup4.q.out @@ -52,6 +52,10 @@ from pcr_t1_n0 where (ds1='2000-04-08' and ds2='2001-04-08' and key=1) or (ds1='2000-04-09' and ds2='2001-04-09' and key=2) order by key, value, ds1, ds2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds1`, `ds2` +FROM `default`.`pcr_t1_n0` +WHERE `ds1` = '2000-04-08' AND `ds2` = '2001-04-08' AND `key` = 1 OR `ds1` = '2000-04-09' AND `ds2` = '2001-04-09' AND `key` = 2 +ORDER BY `key`, `value`, `ds1`, `ds2` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/ppd_join_filter.q.out b/ql/src/test/results/clientpositive/ppd_join_filter.q.out index 372738eab7..3c22bc10d6 100644 --- a/ql/src/test/results/clientpositive/ppd_join_filter.q.out +++ b/ql/src/test/results/clientpositive/ppd_join_filter.q.out @@ -24,6 +24,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 @@ -360,6 +369,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 @@ -696,6 +714,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 @@ -1030,6 +1057,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 diff --git a/ql/src/test/results/clientpositive/ppd_vc.q.out b/ql/src/test/results/clientpositive/ppd_vc.q.out index 5619ba2b08..e8ea1baf60 100644 --- a/ql/src/test/results/clientpositive/ppd_vc.q.out +++ b/ql/src/test/results/clientpositive/ppd_vc.q.out @@ -4,6 +4,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from srcpart where BLOCK__OFFSET__INSIDE__FILE<100 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds`, `hr` +FROM `default`.`srcpart` +WHERE `BLOCK__OFFSET__INSIDE__FILE` < 100 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -320,6 +323,14 @@ select b.* from src a join (select *,BLOCK__OFFSET__INSIDE__FILE from srcpart where BLOCK__OFFSET__INSIDE__FILE<100) b on a.key=b.key AND b.BLOCK__OFFSET__INSIDE__FILE<50 order by ds,hr,BLOCK__OFFSET__INSIDE__FILE POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t2`.`key`, `t2`.`value`, `t2`.`ds`, `t2`.`hr`, `t2`.`BLOCK__OFFSET__INSIDE__FILE` AS `block__offset__inside__file` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, `ds`, `hr`, `BLOCK__OFFSET__INSIDE__FILE` +FROM `default`.`srcpart` +WHERE `BLOCK__OFFSET__INSIDE__FILE` < 50 AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t2`.`ds`, `t2`.`hr`, `t2`.`BLOCK__OFFSET__INSIDE__FILE` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out b/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out index 2eecf55c25..eef8c228a4 100644 --- a/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out +++ b/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out @@ -16,6 +16,9 @@ SELECT THEN 1 ELSE 0 end ) > 0 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(`key` AS INTEGER) AS `user_id`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND (`value` LIKE 'aaa%' OR `value` LIKE 'vvv%') STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -213,6 +216,9 @@ SELECT THEN 1 ELSE 0 end ) > 0 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(`key` AS INTEGER) AS `user_id`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND (`value` LIKE 'aaa%' OR `value` LIKE 'vvv%') STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/push_or.q.out b/ql/src/test/results/clientpositive/push_or.q.out index 6b274a6c58..c59de9eb3a 100644 --- a/ql/src/test/results/clientpositive/push_or.q.out +++ b/ql/src/test/results/clientpositive/push_or.q.out @@ -34,6 +34,10 @@ PREHOOK: query: explain extended select key, value, ds from push_or where ds='20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from push_or where ds='2000-04-09' or key=5 order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`push_or` +WHERE `ds` = '2000-04-09' OR `key` = 5 +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out b/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out index 8d4ef76dd3..dc79ab2a71 100644 --- a/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out +++ b/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out @@ -2,6 +2,9 @@ PREHOOK: query: explain extended select * from src where rand(1) < 0.1 PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from src where rand(1) < 0.1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` +WHERE RAND(1) < 0.1 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out b/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out index 356be3828c..414d2d2ab1 100644 --- a/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out +++ b/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out @@ -14,6 +14,9 @@ POSTHOOK: query: explain extended insert overwrite table tmptable_n1 select a.* from srcpart a where rand(1) < 0.1 and a.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE RAND(1) < 0.1 AND `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 diff --git a/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out b/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out index 5e8767f007..232d188600 100644 --- a/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out +++ b/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out @@ -2,6 +2,9 @@ PREHOOK: query: explain extended select a.* from srcpart a where rand(1) < 0.1 a PREHOOK: type: QUERY POSTHOOK: query: explain extended select a.* from srcpart a where rand(1) < 0.1 and a.ds = '2008-04-08' and not(key > 50 or key < 10) and a.hr like '%2' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE RAND(1) < 0.1 AND `ds` = '2008-04-08' AND `key` <= 50 AND `key` >= 10 AND `hr` LIKE '%2' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -91,6 +94,9 @@ PREHOOK: query: explain extended select a.* from srcpart a where a.ds = '2008-04 PREHOOK: type: QUERY POSTHOOK: query: explain extended select a.* from srcpart a where a.ds = '2008-04-08' and not(key > 50 or key < 10) and a.hr like '%2' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `key` <= 50 AND `key` >= 10 AND `hr` LIKE '%2' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/router_join_ppr.q.out b/ql/src/test/results/clientpositive/router_join_ppr.q.out index 94ff33cfe6..d592887c1e 100644 --- a/ql/src/test/results/clientpositive/router_join_ppr.q.out +++ b/ql/src/test/results/clientpositive/router_join_ppr.q.out @@ -16,6 +16,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -316,6 +323,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -620,6 +634,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -920,6 +941,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` < 20 AND `ds` = '2008-04-08' AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/serde_user_properties.q.out b/ql/src/test/results/clientpositive/serde_user_properties.q.out index 6a65f7ca61..7acb443547 100644 --- a/ql/src/test/results/clientpositive/serde_user_properties.q.out +++ b/ql/src/test/results/clientpositive/serde_user_properties.q.out @@ -2,6 +2,8 @@ PREHOOK: query: explain extended select key from src PREHOOK: type: QUERY POSTHOOK: query: explain extended select key from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -24,6 +26,8 @@ PREHOOK: query: explain extended select a.key from src a PREHOOK: type: QUERY POSTHOOK: query: explain extended select a.key from src a POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -153,6 +157,8 @@ PREHOOK: query: explain extended select key from src ('user.defined.key'='some.v PREHOOK: type: QUERY POSTHOOK: query: explain extended select key from src ('user.defined.key'='some.value') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-0 is a root stage @@ -286,6 +292,8 @@ PREHOOK: query: explain extended select a.key from src ('user.defined.key'='some PREHOOK: type: QUERY POSTHOOK: query: explain extended select a.key from src ('user.defined.key'='some.value') a POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out b/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out index a078ebeecb..e498f421fc 100644 --- a/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out @@ -80,6 +80,23 @@ JOIN `orderpayment_small` `order_city` ON `order_city`.`cityid` = `orderpayment` JOIN `user_small` `user` ON `user`.`userid` = `orderpayment`.`userid` limit 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`date`, `t6`.`dealid` +FROM (SELECT `userid` +FROM `default`.`user_small` +WHERE `userid` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `dealid`, `date`, `cityid`, `userid` +FROM `default`.`orderpayment_small` +WHERE `date` IS NOT NULL AND `dealid` IS NOT NULL AND `cityid` IS NOT NULL AND `userid` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `date` +FROM `default`.`orderpayment_small` +WHERE `date` IS NOT NULL) AS `t4` ON `t2`.`date` = `t4`.`date` +INNER JOIN (SELECT `dealid` +FROM `default`.`orderpayment_small` +WHERE `dealid` IS NOT NULL) AS `t6` ON `t2`.`dealid` = `t6`.`dealid` +INNER JOIN (SELECT `cityid` +FROM `default`.`orderpayment_small` +WHERE `cityid` IS NOT NULL) AS `t8` ON `t2`.`cityid` = `t8`.`cityid`) ON `t0`.`userid` = `t2`.`userid` +LIMIT 5 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out index d70f97e4ce..cb964887d4 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out @@ -103,6 +103,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n1 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n1 a JOIN bucket_big_n1 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n1` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -315,6 +322,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucket_small_n1 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n1` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -527,6 +541,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n1 a JOIN bucket_small_n1 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n1` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out index b4f22adc09..11f13cdee7 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out @@ -139,6 +139,18 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n15 a JOIN bu PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n15 a JOIN bucket_medium b ON a.key = b.key JOIN bucket_big_n15 c ON c.key = b.key JOIN bucket_medium d ON c.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n15` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_medium` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n15` +WHERE `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`, +(SELECT 0 AS `DUMMY` +FROM `default`.`bucket_medium`) AS `t5` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_2.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_2.q.out index c9714b65d7..4d4a954499 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_2.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_2.q.out @@ -85,6 +85,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucket_small_n3 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n3` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n3` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -297,6 +304,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n3 a JOIN bucket_small_n3 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n3` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n3` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out index a38e4f1590..f80836d7c5 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out @@ -85,6 +85,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n9 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n9 a JOIN bucket_big_n9 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n9` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n9` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -246,6 +253,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucket_small_n9 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n9` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n9` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -407,6 +421,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n9 a JOIN bucket_small_n9 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n9` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n9` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out index 68d8e27240..6ebdce0809 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out @@ -101,6 +101,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n12 a JOIN bu PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n12 a JOIN bucket_big_n12 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n12` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -262,6 +269,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN buck PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN bucket_small_n12 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n12` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -423,6 +437,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN buck PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n12 a JOIN bucket_small_n12 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n12` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out index 7a2055cfd8..5f3c07b2bd 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out @@ -66,6 +66,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n0 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n0 a JOIN bucket_big_n0 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n0` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -221,6 +228,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucket_small_n0 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n0` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -376,6 +390,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n0 a JOIN bucket_small_n0 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n0` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n0` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out index 718c2e0991..56045ab913 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out @@ -118,6 +118,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n6 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n6 a JOIN bucket_big_n6 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n6` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -332,6 +339,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucket_small_n6 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n6` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -546,6 +560,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n6 a JOIN bucket_small_n6 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n6` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out index c9abe9f858..b521f807ac 100644 --- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out +++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out @@ -118,6 +118,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small_n5 a JOIN buc PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_small_n5 a JOIN bucket_big_n5 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_small_n5` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_big_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -332,6 +339,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucket_small_n5 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n5` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -546,6 +560,13 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucke PREHOOK: type: QUERY POSTHOOK: query: explain extended select count(*) FROM bucket_big_n5 a JOIN bucket_small_n5 b ON a.key = b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM (SELECT `key` +FROM `default`.`bucket_big_n5` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key` +FROM `default`.`bucket_small_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucket2.q.out b/ql/src/test/results/clientpositive/spark/bucket2.q.out index 1e0fbe5bdb..3441b9f75b 100644 --- a/ql/src/test/results/clientpositive/spark/bucket2.q.out +++ b/ql/src/test/results/clientpositive/spark/bucket2.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket2_1 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucket3.q.out b/ql/src/test/results/clientpositive/spark/bucket3.q.out index e297a089ff..18235d4cda 100644 --- a/ql/src/test/results/clientpositive/spark/bucket3.q.out +++ b/ql/src/test/results/clientpositive/spark/bucket3.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket3_1 partition (ds='1') select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucket4.q.out b/ql/src/test/results/clientpositive/spark/bucket4.q.out index 043c03808f..8b6b11f90a 100644 --- a/ql/src/test/results/clientpositive/spark/bucket4.q.out +++ b/ql/src/test/results/clientpositive/spark/bucket4.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket4_1 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucket4.q.out_spark b/ql/src/test/results/clientpositive/spark/bucket4.q.out_spark index e11219d28b..52cef53d82 100644 --- a/ql/src/test/results/clientpositive/spark/bucket4.q.out_spark +++ b/ql/src/test/results/clientpositive/spark/bucket4.q.out_spark @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket4_1 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out index 281879636b..2a69ba067b 100644 --- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out +++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out @@ -116,6 +116,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n19 a join srcbucket_mapjoin_part_2_n16 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n19` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n16` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 @@ -430,6 +437,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n19 a join srcbucket_mapjoin_part_2_n16 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n19` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n16` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out index 6d3899ac58..7fecee2f0d 100644 --- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out +++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out @@ -100,6 +100,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n12 a join srcbucket_mapjoin_part_2_n10 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n10` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 @@ -414,6 +421,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n12 a join srcbucket_mapjoin_part_2_n10 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n12` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n10` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out index 43981937bb..75aaffa6dc 100644 --- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out +++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out @@ -100,6 +100,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n4 a join srcbucket_mapjoin_part_2_n3 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n4` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n3` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 @@ -414,6 +421,13 @@ select a.key, a.value, b.value from srcbucket_mapjoin_part_n4 a join srcbucket_mapjoin_part_2_n3 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n4` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n3` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out index 5ebdd81364..bb2c3ad59b 100644 --- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out +++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out @@ -66,6 +66,16 @@ POSTHOOK: query: explain extended select a.key as key, a.value as val1, b.value as val2, c.value as val3 from tbl1_n0 a join tbl2_n0 b on a.key = b.key join tbl3 c on a.value = c.value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value` AS `val1`, `t4`.`value` AS `val2`, `t2`.`value` AS `val3` +FROM (SELECT `key`, `value` +FROM `default`.`tbl1_n0` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `value` +FROM `default`.`tbl3` +WHERE `value` IS NOT NULL) AS `t2` ON `t0`.`value` = `t2`.`value` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`tbl2_n0` +WHERE `key` IS NOT NULL) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 @@ -448,6 +458,16 @@ POSTHOOK: query: explain extended select a.key as key, a.value as val1, b.value as val2, c.value as val3 from tbl1_n0 a join tbl2_n0 b on a.key = b.key join tbl3 c on a.value = c.value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value` AS `val1`, `t4`.`value` AS `val2`, `t2`.`value` AS `val3` +FROM (SELECT `key`, `value` +FROM `default`.`tbl1_n0` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `value` +FROM `default`.`tbl3` +WHERE `value` IS NOT NULL) AS `t2` ON `t0`.`value` = `t2`.`value` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`tbl2_n0` +WHERE `key` IS NOT NULL) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out index 0e89474f36..cf7503e0a2 100644 --- a/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out +++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out @@ -32,6 +32,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n1 a join srcbucket_mapjoin_part_2_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -123,6 +130,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n1 a join srcbucket_mapjoin_part_2_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -306,6 +320,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_n1 a join srcbucket_mapjoin_part_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -669,6 +690,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_n1 a join srcbucket_mapjoin_part_n1 b on a.key=b.key where b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n1` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n1` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out index ae26d42608..d23fe499ee 100644 --- a/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out +++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out @@ -100,6 +100,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n6 a join srcbucket_mapjoin_part_2_n5 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n5` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -468,6 +475,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n6 a join srcbucket_mapjoin_part_2_n5 b on a.key=b.key and b.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n5` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -853,6 +867,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_n6 a join srcbucket_mapjoin_part_2_n5 b on a.key=b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_n6` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_part_2_n5` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out index a71b2a24ef..8c33dbf210 100644 --- a/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out +++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out @@ -124,6 +124,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_2_n11 a join srcbucket_mapjoin_part_n13 b on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n11` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n13` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -492,6 +499,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_part_2_n11 a join srcbucket_mapjoin_part_n13 b on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08" POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_2_n11` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcbucket_mapjoin_part_n13` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out index 1635a58c49..287bde6ca4 100644 --- a/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out +++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out @@ -124,6 +124,13 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value from srcbucket_mapjoin_n17 a join srcbucket_mapjoin_n17 b on a.key=b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -478,6 +485,13 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value from srcbucket_mapjoin_n17 a join srcbucket_mapjoin_n17 b on a.key=b.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`srcbucket_mapjoin_n17` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out b/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out index 2c9101ed78..3e1ecb3252 100644 --- a/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out +++ b/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket2_1_n0 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out_spark b/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out_spark index 9607affe29..aa51741169 100644 --- a/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out_spark +++ b/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out_spark @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table bucket2_1_n0 select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out b/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out index 07ac5d6d33..1191734d3e 100644 --- a/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out +++ b/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out @@ -28,6 +28,16 @@ SELECT f.key, g.value FROM filter_join_breaktask f JOIN filter_join_breaktask m ON( f.key = m.key AND f.ds='2008-04-08' AND m.ds='2008-04-08' AND f.key is not null) JOIN filter_join_breaktask g ON(g.value = m.value AND g.ds='2008-04-08' AND m.ds='2008-04-08' AND m.value is not null AND m.value !='') POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `value` <> '') AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `value` <> '' AND `key` IS NOT NULL) AS `t2` ON `t0`.`value` = `t2`.`value` +INNER JOIN (SELECT `key`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`filter_join_breaktask` +WHERE `ds` = '2008-04-08' AND `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out b/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out index 73b1c495db..873717273d 100644 --- a/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out +++ b/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out @@ -42,6 +42,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT key, count(1) FROM T1_n80 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -239,6 +242,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl2_n5 SELECT key, val, count(1) FROM T1_n80 GROUP BY key, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n80` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -451,6 +457,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT key, count(1) FROM (SELECT key, val FROM T1_n80) subq1 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -640,6 +649,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1_n80) subq1 GROUP BY k POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -837,6 +849,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n2 SELECT 1, key, count(1) FROM T1_n80 GROUP BY 1, key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT 1 AS `_o__c0`, `key`, COUNT(*) AS `_o__c2` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1035,6 +1050,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n2 SELECT key, 1, val, count(1) FROM T1_n80 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t1_n80` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1248,6 +1266,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n2 SELECT key, key + 1, count(1) FROM T1_n80 GROUP BY key, key + 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` AS `$f0`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) AS `$f1`, COUNT(*) AS `$f2` +FROM `default`.`t1_n80` +GROUP BY `key`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1463,6 +1484,9 @@ SELECT key + key, sum(cnt) from (SELECT key, count(1) as cnt FROM T1_n80 GROUP BY key) subq1 group by key + key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS `$f0`, SUM(COUNT(*)) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1695,6 +1719,13 @@ SELECT key, count(1) FROM T1_n80 GROUP BY key SELECT key, count(1) FROM T1_n80 GROUP BY key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2016,6 +2047,13 @@ SELECT key, count(1) FROM T1_n80 GROUP BY key SELECT cast(key + key as string) as key, count(1) FROM T1_n80 GROUP BY key + key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +GROUP BY `key` +UNION ALL +SELECT CAST(CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS STRING) AS `key`, COUNT(*) AS `_o__c1` +FROM `default`.`t1_n80` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2362,6 +2400,15 @@ JOIN (SELECT key, count(1) as cnt FROM T1_n80 GROUP BY key) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`$f1` + `t2`.`$f1` AS `_o__c1` +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2672,6 +2719,15 @@ JOIN (SELECT key, val, count(1) FROM T1_n80 GROUP BY key, val) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n80` +WHERE `key` IS NOT NULL +GROUP BY `key`, `val`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2939,6 +2995,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n18 SELECT key, count(1) FROM T2_n49 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t2_n49` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3150,6 +3209,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n2 SELECT key, 1, val, count(1) FROM T2_n49 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3350,6 +3412,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl5_n2 SELECT key, 1, val, 2, count(1) FROM T2_n49 GROUP BY key, 1, val, 2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, 2 AS `_o__c3`, COUNT(*) AS `_o__c4` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3549,6 +3614,9 @@ SELECT key, constant, val, count(1) from (SELECT key, 1 as constant, val from T2_n49)subq group by key, constant, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `constant`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3755,6 +3823,9 @@ SELECT key, constant as constant2, val, 2 as constant3 from )subq2 group by key, constant3, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 2 AS `constant3`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n49` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out b/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out index 365cb22e55..571203089d 100644 --- a/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out +++ b/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out @@ -42,6 +42,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT key, count(1) FROM T1_n56 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -239,6 +242,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl2_n3 SELECT key, val, count(1) FROM T1_n56 GROUP BY key, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n56` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -471,6 +477,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT key, count(1) FROM (SELECT key, val FROM T1_n56) subq1 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -660,6 +669,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1_n56) subq1 GROUP BY k POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -857,6 +869,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n1 SELECT 1, key, count(1) FROM T1_n56 GROUP BY 1, key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT 1 AS `_o__c0`, `key`, COUNT(*) AS `_o__c2` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1055,6 +1070,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n1 SELECT key, 1, val, count(1) FROM T1_n56 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t1_n56` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1288,6 +1306,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl3_n1 SELECT key, key + 1, count(1) FROM T1_n56 GROUP BY key, key + 1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key` AS `$f0`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) AS `$f1`, COUNT(*) AS `$f2` +FROM `default`.`t1_n56` +GROUP BY `key`, CAST(`key` AS DOUBLE) + CAST(1 AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1523,6 +1544,9 @@ SELECT cast(key + key as string), sum(cnt) from (SELECT key, count(1) as cnt FROM T1_n56 GROUP BY key) subq1 group by key + key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS STRING) AS `_o__c0`, SUM(COUNT(*)) AS `_o__c1` +FROM `default`.`t1_n56` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1775,6 +1799,13 @@ SELECT key, count(1) FROM T1_n56 GROUP BY key SELECT key, count(1) FROM T1_n56 GROUP BY key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2096,6 +2127,13 @@ SELECT key, count(1) FROM T1_n56 GROUP BY key SELECT cast(key + key as string) as key, count(1) FROM T1_n56 GROUP BY key + key ) subq1 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +GROUP BY `key` +UNION ALL +SELECT CAST(CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) AS STRING) AS `key`, COUNT(*) AS `_o__c1` +FROM `default`.`t1_n56` +GROUP BY CAST(`key` AS DOUBLE) + CAST(`key` AS DOUBLE) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2462,6 +2500,15 @@ JOIN (SELECT key, count(1) as cnt FROM T1_n56 GROUP BY key) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`$f1` + `t2`.`$f1` AS `_o__c1` +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2772,6 +2819,15 @@ JOIN (SELECT key, val, count(1) FROM T1_n56 GROUP BY key, val) subq2 ON subq1.key = subq2.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`) AS `t0` +INNER JOIN (SELECT `key`, `val`, COUNT(*) AS `$f2` +FROM `default`.`t1_n56` +WHERE `key` IS NOT NULL +GROUP BY `key`, `val`) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3059,6 +3115,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl1_n13 SELECT key, count(1) FROM T2_n34 GROUP BY key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`t2_n34` +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3290,6 +3349,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl4_n1 SELECT key, 1, val, count(1) FROM T2_n34 GROUP BY key, 1, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3490,6 +3552,9 @@ POSTHOOK: query: EXPLAIN EXTENDED INSERT OVERWRITE TABLE outputTbl5_n1 SELECT key, 1, val, 2, count(1) FROM T2_n34 GROUP BY key, 1, val, 2 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `_o__c1`, `val`, 2 AS `_o__c3`, COUNT(*) AS `_o__c4` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3689,6 +3754,9 @@ SELECT key, constant, val, count(1) from (SELECT key, 1 as constant, val from T2_n34)subq group by key, constant, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 1 AS `constant`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3895,6 +3963,9 @@ SELECT key, constant as constant2, val, 2 as constant3 from )subq2 group by key, constant3, val POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, 2 AS `constant3`, `val`, COUNT(*) AS `_o__c3` +FROM `default`.`t2_n34` +GROUP BY `key`, `val` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/join17.q.out b/ql/src/test/results/clientpositive/spark/join17.q.out index 3b9d1e7c20..ab748cd460 100644 --- a/ql/src/test/results/clientpositive/spark/join17.q.out +++ b/ql/src/test/results/clientpositive/spark/join17.q.out @@ -14,6 +14,13 @@ POSTHOOK: query: EXPLAIN EXTENDED FROM src src1 JOIN src src2 ON (src1.key = src2.key) INSERT OVERWRITE TABLE dest1_n121 SELECT src1.*, src2.* POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/join26.q.out b/ql/src/test/results/clientpositive/spark/join26.q.out index 4370eba84c..64ba198491 100644 --- a/ql/src/test/results/clientpositive/spark/join26.q.out +++ b/ql/src/test/results/clientpositive/spark/join26.q.out @@ -18,6 +18,16 @@ SELECT /*+ MAPJOIN(x,y) */ x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.key = z.key and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `key` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key` +FROM `default`.`src1` +WHERE `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/join32.q.out b/ql/src/test/results/clientpositive/spark/join32.q.out index 620ce4f42a..665cf6705b 100644 --- a/ql/src/test/results/clientpositive/spark/join32.q.out +++ b/ql/src/test/results/clientpositive/spark/join32.q.out @@ -18,6 +18,16 @@ SELECT x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out b/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out index dc670051cb..9c1e4361d8 100644 --- a/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out +++ b/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out @@ -26,6 +26,16 @@ SELECT x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 @@ -490,6 +500,19 @@ FROM src w JOIN src1 x ON (x.value = w.value) JOIN src y ON (x.key = y.key) JOIN src1 z ON (x.key = z.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t6`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value` +FROM `default`.`src` +WHERE `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src1` +WHERE `value` IS NOT NULL AND `key` IS NOT NULL) AS `t4` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL) AS `t6` ON `t4`.`key` = `t6`.`key`) ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 @@ -1030,6 +1053,17 @@ SELECT res.key, z.value, res.value FROM (select x.key, x.value from src1 x JOIN src y ON (x.key = y.key)) res JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t5`.`key`, `t0`.`value`, `t5`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `t4`.`key`, `t4`.`value` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) AS `t5` ON `t0`.`value` = `t5`.`value` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 @@ -1496,6 +1530,16 @@ SELECT res.key, z.value, res.value FROM (select x.key, x.value from src1 x LEFT OUTER JOIN src y ON (x.key = y.key)) res JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t4`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `t3`.`key`, `t3`.`value` +FROM (SELECT `key` +FROM `default`.`src`) AS `t1` +RIGHT JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `value` IS NOT NULL) AS `t3` ON `t1`.`key` = `t3`.`key`) AS `t4` ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/join33.q.out b/ql/src/test/results/clientpositive/spark/join33.q.out index 388170b3db..13cd446350 100644 --- a/ql/src/test/results/clientpositive/spark/join33.q.out +++ b/ql/src/test/results/clientpositive/spark/join33.q.out @@ -18,6 +18,16 @@ SELECT x.key, z.value, y.value FROM src1 x JOIN src y ON (x.key = y.key) JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t0`.`value`, `t2`.`value` AS `value1` +FROM (SELECT `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 AND `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t4`.`value` STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/join34.q.out b/ql/src/test/results/clientpositive/spark/join34.q.out index b7b3098db7..2d4ab48605 100644 --- a/ql/src/test/results/clientpositive/spark/join34.q.out +++ b/ql/src/test/results/clientpositive/spark/join34.q.out @@ -26,6 +26,17 @@ FROM ) subq1 JOIN src1 x ON (x.key = subq1.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t5`.`key`, `t5`.`value`, `t3`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 +UNION ALL +SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 100) AS `t3` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE (`key` < 20 OR `key` > 100) AND `key` IS NOT NULL) AS `t5` ON `t3`.`key` = `t5`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/join35.q.out b/ql/src/test/results/clientpositive/spark/join35.q.out index 475443cfa2..d61dec2a78 100644 --- a/ql/src/test/results/clientpositive/spark/join35.q.out +++ b/ql/src/test/results/clientpositive/spark/join35.q.out @@ -26,6 +26,19 @@ FROM ) subq1 JOIN src1 x ON (x.key = subq1.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t5`.`key`, `t5`.`value`, `t3`.`$f1` AS `cnt` +FROM (SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`src` +WHERE `key` < 20 +GROUP BY `key` +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`src` +WHERE `key` > 100 +GROUP BY `key`) AS `t3` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src1` +WHERE (`key` < 20 OR `key` > 100) AND `key` IS NOT NULL) AS `t5` ON `t3`.`key` = `t5`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/join9.q.out b/ql/src/test/results/clientpositive/spark/join9.q.out index 180a989e30..6372a278dd 100644 --- a/ql/src/test/results/clientpositive/spark/join9.q.out +++ b/ql/src/test/results/clientpositive/spark/join9.q.out @@ -14,6 +14,13 @@ POSTHOOK: query: EXPLAIN EXTENDED FROM srcpart src1 JOIN src src2 ON (src1.key = src2.key) INSERT OVERWRITE TABLE dest1_n39 SELECT src1.key, src2.value where src1.ds = '2008-04-08' and src1.hr = '12' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t2`.`value` +FROM (SELECT `key`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('12' AS STRING) AS `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = '12' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out b/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out index a2906fed1a..26acd7eff3 100644 --- a/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out +++ b/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out @@ -14,6 +14,15 @@ PREHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (a_n4.key=c.key AND a_n4.value=60 AND c.value=60) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t` +LEFT JOIN (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t1` ON `t`.`key` = `t1`.`key` AND `t`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t`.`key` = `t3`.`key` AND `t`.`value` = 60 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -328,6 +337,15 @@ PREHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on ( PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (b.key=c.key AND b.value=60 AND c.value=60) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t0` +RIGHT JOIN (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t1` ON `t0`.`key` = `t1`.`key` AND `t1`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t1`.`key` = `t3`.`key` AND `t1`.`value` = 60 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -642,6 +660,15 @@ PREHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on ( PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 right outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50 AND b.value>10) left outer join a_n4 c on (b.key=c.key AND b.value=60 AND b.value>20 AND c.value=60) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t0` +RIGHT JOIN (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t1` ON `t0`.`key` = `t1`.`key` AND `t1`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t1`.`key` = `t3`.`key` AND `t1`.`value` = 60 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -956,6 +983,17 @@ PREHOOK: query: explain extended select * from a_n4 full outer join a_n4 b on (a PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 full outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (b.key=c.key AND b.value=60 AND c.value=60) left outer join a_n4 d on (a_n4.key=d.key AND a_n4.value=40 AND d.value=40) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t` +FULL JOIN (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t0` ON `t`.`key` = `t0`.`key` AND `t`.`value` = 50 AND `t0`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t2` ON `t0`.`key` = `t2`.`key` AND `t0`.`value` = 60 +LEFT JOIN (SELECT `key`, CAST(40 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 40) AS `t4` ON `t`.`key` = `t4`.`key` AND `t`.`value` = 40 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1338,6 +1376,18 @@ PREHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from a_n4 left outer join a_n4 b on (a_n4.key=b.key AND a_n4.value=50 AND b.value=50) left outer join a_n4 c on (a_n4.key=c.key AND a_n4.value=60 AND c.value=60) left outer join a_n4 d on (a_n4.key=d.key AND a_n4.value=40 AND d.value=40) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`a_n4`) AS `t` +LEFT JOIN (SELECT `key`, CAST(50 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 50) AS `t1` ON `t`.`key` = `t1`.`key` AND `t`.`value` = 50 +LEFT JOIN (SELECT `key`, CAST(60 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 60) AS `t3` ON `t`.`key` = `t3`.`key` AND `t`.`value` = 60 +LEFT JOIN (SELECT `key`, CAST(40 AS INTEGER) AS `value` +FROM `default`.`a_n4` +WHERE `value` = 40) AS `t5` ON `t`.`key` = `t5`.`key` AND `t`.`value` = 40 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out b/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out index e14ae92d1c..33cb7d8d07 100644 --- a/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out +++ b/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.out @@ -22,6 +22,8 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11') select key, value from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out b/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out index 887c52dd2b..a2a961c043 100644 --- a/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out +++ b/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.out @@ -22,6 +22,9 @@ POSTHOOK: query: explain extended insert overwrite table list_bucketing_static_part_n4 partition (ds = '2008-04-08', hr = '11') select key, value from srcpart where ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -304,6 +307,9 @@ PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from list_bucketing_static_part_n4 where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, CAST('val_484' AS STRING) AS `value`, CAST('2008-04-08' AS STRING) AS `ds`, CAST('11' AS STRING) AS `hr` +FROM `default`.`list_bucketing_static_part_n4` +WHERE `ds` = '2008-04-08' AND `hr` = '11' AND `key` = '484' AND `value` = 'val_484' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out b/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out index b770d98c56..5418baa197 100644 --- a/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out +++ b/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out @@ -16,6 +16,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -330,6 +337,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` < 20 AND `ds` = '2008-04-08' AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -648,6 +662,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -962,6 +983,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` < 20 AND `ds` = '2008-04-08' AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out b/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out index 50a0627057..d2bb4e8870 100644 --- a/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out +++ b/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out @@ -2,6 +2,16 @@ PREHOOK: query: explain extended select srcpart.key from srcpart join src on (sr PREHOOK: type: QUERY POSTHOOK: query: explain extended select srcpart.key from srcpart join src on (srcpart.value=src.value) join src1 on (srcpart.key=src1.key) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t2`.`key` +FROM (SELECT `value` +FROM `default`.`src` +WHERE `value` IS NOT NULL) AS `t0` +INNER JOIN ((SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `value` IS NOT NULL AND `key` IS NOT NULL) AS `t2` +INNER JOIN (SELECT `key` +FROM `default`.`src1` +WHERE `key` IS NOT NULL) AS `t4` ON `t2`.`key` = `t4`.`key`) ON `t0`.`value` = `t2`.`value` STAGE DEPENDENCIES: Stage-2 is a root stage Stage-1 depends on stages: Stage-2 diff --git a/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.out b/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.out index e86f9fc568..b8aef73dc0 100644 --- a/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.out +++ b/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.out @@ -16,6 +16,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -330,6 +337,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out b/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out index 0f4d95231a..30b5a2e8c9 100644 --- a/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out +++ b/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out @@ -1771,6 +1771,9 @@ select count(*) from alltypesparquet where (((cstring1 LIKE 'a%') or ((cstring1 like 'b%') or (cstring1 like 'c%'))) or ((length(cstring1) < 50 ) and ((cstring1 like '%n') and (length(cstring1) > 0)))) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`alltypesparquet` +WHERE `cstring1` LIKE 'a%' OR `cstring1` LIKE 'b%' OR `cstring1` LIKE 'c%' OR CHARACTER_LENGTH(`cstring1`) < 50 AND `cstring1` LIKE '%n' AND CHARACTER_LENGTH(`cstring1`) > 0 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30584,6 +30587,9 @@ POSTHOOK: query: explain extended select * from alltypesparquet where (cint=47 and cfloat=2.09) or (cint=45 and cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesparquet` +WHERE `cint` = 49 AND `cfloat` = 3.5 OR `cint` = 47 AND `cfloat` = 2.09 OR `cint` = 45 AND `cfloat` = 3.02 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30817,6 +30823,9 @@ POSTHOOK: query: explain extended select * from alltypesparquet where (cint=47 or cfloat=2.09) and (cint=45 or cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesparquet` +WHERE (`cint` = 49 OR `cfloat` = 3.5) AND (`cint` = 47 OR `cfloat` = 2.09) AND (`cint` = 45 OR `cfloat` = 3.02) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/pcr.q.out b/ql/src/test/results/clientpositive/spark/pcr.q.out index aa3b2a326d..11c7891d41 100644 --- a/ql/src/test/results/clientpositive/spark/pcr.q.out +++ b/ql/src/test/results/clientpositive/spark/pcr.q.out @@ -52,6 +52,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` <= '2000-04-09' AND `key` < 5 +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -252,6 +256,10 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-04-09' or key<5 order by key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`pcr_t1` +WHERE `ds` <= '2000-04-09' OR `key` < 5 +ORDER BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -538,6 +546,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 and value != 'val_2' order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` <= '2000-04-09' AND `key` < 5 AND `value` <> 'val_2' +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -740,6 +752,10 @@ POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds < '2000-04-09' and key < 5) or (ds > '2000-04-09' and value == 'val_5') order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` < '2000-04-09' AND `key` < 5 OR `ds` > '2000-04-09' AND `value` = 'val_5' +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -944,6 +960,10 @@ POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds < '2000-04-10' and key < 5) or (ds > '2000-04-08' and value == 'val_5') order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` < '2000-04-10' AND `key` < 5 OR `ds` > '2000-04-08' AND `value` = 'val_5' +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1207,6 +1227,10 @@ POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds < '2000-04-10' or key < 5) and (ds > '2000-04-08' or value == 'val_5') order by key, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE (`ds` < '2000-04-10' OR `key` < 5) AND (`ds` > '2000-04-08' OR `value` = 'val_5') +ORDER BY `key`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1478,6 +1502,11 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-04-08' or ds='2000-04-09') and key=14 order by key, value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(14 AS INTEGER) AS `key`, `value` +FROM (SELECT `value` +FROM `default`.`pcr_t1` +WHERE (`ds` = '2000-04-08' OR `ds` = '2000-04-09') AND `key` = 14 +ORDER BY `value`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1667,6 +1696,10 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04-08' or ds='2000-04-09' order by key, value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' OR `ds` = '2000-04-09' +ORDER BY `key`, `value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1892,6 +1925,10 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-04-08' or ds<'2000-04-10' order by key, value POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`pcr_t1` +WHERE `ds` >= '2000-04-08' OR `ds` < '2000-04-10' +ORDER BY `key`, `value` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2188,6 +2225,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='2000-04-08' and key=1) or (ds='2000-04-09' and key=2) order by key, value, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` = 1 OR `ds` = '2000-04-09' AND `key` = 2 +ORDER BY `key`, `value`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2378,6 +2419,15 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-08' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-08' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2658,6 +2708,15 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke PREHOOK: type: QUERY POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-09' order by t1.key POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t4`.`key`, `t4`.`value`, CAST('2000-04-08' AS STRING) AS `ds`, `t4`.`key1`, `t4`.`value1`, CAST('2000-04-09' AS STRING) AS `ds1` +FROM (SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2000-04-08' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-08' AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2000-04-09' AS STRING) AS `ds` +FROM `default`.`pcr_t1` +WHERE `ds` = '2000-04-09' AND `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key`) AS `t4` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -2950,6 +3009,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds>='2000-04-08' and ds<='2000-04-11' and key=2) order by key, value, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` > '2000-04-08' AND `ds` < '2000-04-11' OR `ds` >= '2000-04-08' AND `ds` <= '2000-04-11' AND `key` = 2 +ORDER BY `key`, `value`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -3283,6 +3346,10 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds<='2000-04-09' and key=2) order by key, value, ds POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds` +FROM `default`.`pcr_t1` +WHERE `ds` > '2000-04-08' AND `ds` < '2000-04-11' OR `ds` <= '2000-04-09' AND `key` = 2 +ORDER BY `key`, `value`, `ds` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -4078,6 +4145,11 @@ PREHOOK: query: explain extended select key, value from srcpart where ds='2008-0 PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value from srcpart where ds='2008-04-08' and hr=11 order by key limit 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `hr` = 11 +ORDER BY `key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -4217,6 +4289,11 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where ds PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where ds='2008-04-08' and (hr='11' or hr='12') and key=11 order by key, ds, hr POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds`, `hr` +FROM (SELECT `key`, `value`, `hr` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND (`hr` = '11' OR `hr` = '12') AND `key` = 11 +ORDER BY `key`, `hr`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -4411,6 +4488,11 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where hr PREHOOK: type: QUERY POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where hr='11' and key=11 order by key, ds, hr POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value`, `ds`, CAST('11' AS STRING) AS `hr` +FROM (SELECT `key`, `value`, `ds` +FROM `default`.`srcpart` +WHERE `hr` = '11' AND `key` = 11 +ORDER BY `key`, `ds`) AS `t1` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out b/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out index 0b0ea2db2e..dedd45d0ac 100644 --- a/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out +++ b/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out @@ -24,6 +24,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -324,6 +333,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -624,6 +642,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -922,6 +949,15 @@ group by key ) b on a.key=b.key and b.k1 < 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t4`.`k2`, `t4`.`k3` +FROM (SELECT `key` +FROM `default`.`src` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, CAST(MIN(`key`) AS DOUBLE) + CAST(2 AS DOUBLE) AS `k2`, CAST(MIN(`key`) AS DOUBLE) + CAST(3 AS DOUBLE) AS `k3` +FROM `default`.`src` +WHERE `key` IS NOT NULL +GROUP BY `key` +HAVING CAST(MIN(`key`) AS DOUBLE) + 1 < 5.0) AS `t4` ON `t0`.`key` = `t4`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out b/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out index 45373b1948..23061e057d 100644 --- a/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out +++ b/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out @@ -16,6 +16,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -330,6 +337,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `ds` = '2008-04-08' AND `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -648,6 +662,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 20 AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` > 15 AND `ds` = '2008-04-08' AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -962,6 +983,13 @@ POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.value, b.key, b.value WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `t0`.`key`, `t0`.`value`, `t2`.`key` AS `key1`, `t2`.`value` AS `value1` +FROM (SELECT `key`, `value`, CAST('2008-04-08' AS STRING) AS `ds` +FROM `default`.`srcpart` +WHERE `key` < 20 AND `ds` = '2008-04-08' AND `key` > 15) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 15 AND `key` < 20) AS `t2` ON `t0`.`key` = `t2`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out b/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out index 76beb2fb5f..7a82af285c 100644 --- a/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out +++ b/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out @@ -38,6 +38,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key = b.key ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `value` +FROM `default`.`test_table1_n4` +WHERE `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `value` +FROM `default`.`test_table2_n4` +WHERE `key` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -259,6 +268,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key = b.key and a.key2 = b.key2 ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `key2`, `value` +FROM `default`.`test_table1_n4` +WHERE `key` IS NOT NULL AND `key2` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `key2`, `value` +FROM `default`.`test_table2_n4` +WHERE `key` IS NOT NULL AND `key2` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` AND `t0`.`key2` = `t2`.`key2` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -428,6 +446,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key2 = b.key2 and a.key = b.key ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `key2`, `value` +FROM `default`.`test_table1_n4` +WHERE `key2` IS NOT NULL AND `key` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `key2`, `value` +FROM `default`.`test_table2_n4` +WHERE `key2` IS NOT NULL AND `key` IS NOT NULL) AS `t2` ON `t0`.`key2` = `t2`.`key2` AND `t0`.`key` = `t2`.`key` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -597,6 +624,15 @@ PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT /*+mapjoin(b)*/ * FROM test_table1_n4 a JOIN test_table2_n4 b ON a.key = b.key and a.value = b.value ORDER BY a.key LIMIT 10 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT * +FROM (SELECT `key`, `key2`, `value` +FROM `default`.`test_table1_n4` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t0` +INNER JOIN (SELECT `key`, `key2`, `value` +FROM `default`.`test_table2_n4` +WHERE `key` IS NOT NULL AND `value` IS NOT NULL) AS `t2` ON `t0`.`key` = `t2`.`key` AND `t0`.`value` = `t2`.`value` +ORDER BY `t0`.`key` +LIMIT 10 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/spark_union_merge.q.out b/ql/src/test/results/clientpositive/spark/spark_union_merge.q.out index 63d3b3f604..4c9f954ac5 100644 --- a/ql/src/test/results/clientpositive/spark/spark_union_merge.q.out +++ b/ql/src/test/results/clientpositive/spark/spark_union_merge.q.out @@ -14,6 +14,13 @@ FROM ( ) unioninput INSERT OVERWRITE DIRECTORY 'target/warehouse/union_merge.out' SELECT unioninput.* POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 100 +UNION ALL +SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 100 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -243,6 +250,13 @@ FROM ( ) unioninput INSERT OVERWRITE DIRECTORY 'target/warehouse/union_merge.out' SELECT unioninput.* POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` < 100 +UNION ALL +SELECT `key`, `value` +FROM `default`.`src` +WHERE `key` > 100 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-6 depends on stages: Stage-1 , consists of Stage-3, Stage-2, Stage-4 diff --git a/ql/src/test/results/clientpositive/spark/stats0.q.out b/ql/src/test/results/clientpositive/spark/stats0.q.out index 2a113ae996..a009dc00c6 100644 --- a/ql/src/test/results/clientpositive/spark/stats0.q.out +++ b/ql/src/test/results/clientpositive/spark/stats0.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table stats_non_partitioned select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1338,6 +1340,8 @@ POSTHOOK: query: explain extended insert overwrite table stats_non_partitioned select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/union22.q.out b/ql/src/test/results/clientpositive/spark/union22.q.out index d260fb7b60..54c3967b0d 100644 --- a/ql/src/test/results/clientpositive/spark/union22.q.out +++ b/ql/src/test/results/clientpositive/spark/union22.q.out @@ -70,6 +70,17 @@ where a.k1 > 20 ) subq POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `k1`, `k2`, `k3`, `k4` +FROM `default`.`dst_union22_delta` +WHERE `ds` = '1' AND `k0` <= 50 +UNION ALL +SELECT `t2`.`k1`, `t2`.`k2`, `t4`.`k3`, `t4`.`k4` +FROM (SELECT `k1`, `k2`, `ds` +FROM `default`.`dst_union22` +WHERE `k1` > 20) AS `t2` +LEFT JOIN (SELECT `k1`, `k3`, `k4` +FROM `default`.`dst_union22_delta` +WHERE `ds` = '1' AND `k0` > 50 AND `k1` > 20) AS `t4` ON `t2`.`k1` = `t4`.`k1` AND `t2`.`ds` = '1' STAGE DEPENDENCIES: Stage-3 is a root stage Stage-1 depends on stages: Stage-3 diff --git a/ql/src/test/results/clientpositive/spark/union24.q.out b/ql/src/test/results/clientpositive/spark/union24.q.out index 4c93462904..4567b27be7 100644 --- a/ql/src/test/results/clientpositive/spark/union24.q.out +++ b/ql/src/test/results/clientpositive/spark/union24.q.out @@ -68,6 +68,22 @@ select s.key, s.count from ( select key, count(1) as count from src5_n3 where key < 10 group by key )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM `default`.`src2_n6` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3_n2` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src4_n0` +WHERE `key` < 10 +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`src5_n3` +WHERE `key` < 10 +GROUP BY `key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -543,6 +559,21 @@ select s.key, s.count from ( select a.key as key, b.count as count from src4_n0 a join src5_n3 b on a.key=b.key where a.key < 10 )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM `default`.`src2_n6` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3_n2` +WHERE `key` < 10 +UNION ALL +SELECT `t4`.`key`, `t6`.`count` +FROM (SELECT `key` +FROM `default`.`src4_n0` +WHERE `key` < 10) AS `t4` +INNER JOIN (SELECT `key`, `count` +FROM `default`.`src5_n3` +WHERE `key` < 10) AS `t6` ON `t4`.`key` = `t6`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -994,6 +1025,22 @@ select s.key, s.count from ( select a.key as key, count(1) as count from src4_n0 a join src5_n3 b on a.key=b.key where a.key < 10 group by a.key )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM `default`.`src2_n6` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3_n2` +WHERE `key` < 10 +UNION ALL +SELECT `t4`.`key`, COUNT(*) AS `$f1` +FROM (SELECT `key` +FROM `default`.`src4_n0` +WHERE `key` < 10) AS `t4` +INNER JOIN (SELECT `key` +FROM `default`.`src5_n3` +WHERE `key` < 10) AS `t6` ON `t4`.`key` = `t6`.`key` +GROUP BY `t4`.`key` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/spark/vectorization_0.q.out b/ql/src/test/results/clientpositive/spark/vectorization_0.q.out index 3b932d85cf..c6b204f3df 100644 --- a/ql/src/test/results/clientpositive/spark/vectorization_0.q.out +++ b/ql/src/test/results/clientpositive/spark/vectorization_0.q.out @@ -1771,6 +1771,9 @@ select count(*) from alltypesorc where (((cstring1 LIKE 'a%') or ((cstring1 like 'b%') or (cstring1 like 'c%'))) or ((length(cstring1) < 50 ) and ((cstring1 like '%n') and (length(cstring1) > 0)))) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT COUNT(*) AS `$f0` +FROM `default`.`alltypesorc` +WHERE `cstring1` LIKE 'a%' OR `cstring1` LIKE 'b%' OR `cstring1` LIKE 'c%' OR CHARACTER_LENGTH(`cstring1`) < 50 AND `cstring1` LIKE '%n' AND CHARACTER_LENGTH(`cstring1`) > 0 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30584,6 +30587,9 @@ POSTHOOK: query: explain extended select * from alltypesorc where (cint=47 and cfloat=2.09) or (cint=45 and cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesorc` +WHERE `cint` = 49 AND `cfloat` = 3.5 OR `cint` = 47 AND `cfloat` = 2.09 OR `cint` = 45 AND `cfloat` = 3.02 STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -30817,6 +30823,9 @@ POSTHOOK: query: explain extended select * from alltypesorc where (cint=47 or cfloat=2.09) and (cint=45 or cfloat=3.02) POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2` +FROM `default`.`alltypesorc` +WHERE (`cint` = 49 OR `cfloat` = 3.5) AND (`cint` = 47 OR `cfloat` = 2.09) AND (`cint` = 45 OR `cfloat` = 3.02) STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 diff --git a/ql/src/test/results/clientpositive/stats0.q.out b/ql/src/test/results/clientpositive/stats0.q.out index 47c71a7fb2..155e95e575 100644 --- a/ql/src/test/results/clientpositive/stats0.q.out +++ b/ql/src/test/results/clientpositive/stats0.q.out @@ -14,6 +14,8 @@ POSTHOOK: query: explain extended insert overwrite table stats_non_partitioned select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 depends on stages: Stage-1 @@ -1418,6 +1420,8 @@ POSTHOOK: query: explain extended insert overwrite table stats_non_partitioned select * from src POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `value` +FROM `default`.`src` STAGE DEPENDENCIES: Stage-1 is a root stage Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5 diff --git a/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out b/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out index c493965f07..27d21f32c3 100644 --- a/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out +++ b/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out @@ -53,6 +53,9 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_tab_n3 WHERE part = '1' AND PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_tab_n3 WHERE part = '1' AND key = '484' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('484' AS STRING) AS `key`, `value`, CAST('1' AS STRING) AS `part` +FROM `default`.`test_tab_n3` +WHERE `part` = '1' AND `key` = '484' STAGE DEPENDENCIES: Stage-0 is a root stage @@ -137,6 +140,9 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_tab_n3 WHERE part = '1' AND PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_tab_n3 WHERE part = '1' AND key = '0' POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST('0' AS STRING) AS `key`, `value`, CAST('1' AS STRING) AS `part` +FROM `default`.`test_tab_n3` +WHERE `part` = '1' AND `key` = '0' STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/udf_reflect2.q.out b/ql/src/test/results/clientpositive/udf_reflect2.q.out index af9015ad63..f3bbff24d6 100644 --- a/ql/src/test/results/clientpositive/udf_reflect2.q.out +++ b/ql/src/test/results/clientpositive/udf_reflect2.q.out @@ -80,6 +80,9 @@ SELECT key, reflect2(ts, "toEpochMilli") FROM (select cast(key as int) key, value, cast('2013-02-15 19:41:20' as timestamp) ts from src) a LIMIT 5 POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT CAST(`key` AS INTEGER) AS `key`, REFLECT2(CAST(`key` AS INTEGER), 'byteValue') AS `_o__c1`, REFLECT2(CAST(`key` AS INTEGER), 'shortValue') AS `_o__c2`, REFLECT2(CAST(`key` AS INTEGER), 'intValue') AS `_o__c3`, REFLECT2(CAST(`key` AS INTEGER), 'longValue') AS `_o__c4`, REFLECT2(CAST(`key` AS INTEGER), 'floatValue') AS `_o__c5`, REFLECT2(CAST(`key` AS INTEGER), 'doubleValue') AS `_o__c6`, REFLECT2(CAST(`key` AS INTEGER), 'toString') AS `_o__c7`, `value`, REFLECT2(`value`, 'concat', '_concat') AS `_o__c9`, REFLECT2(`value`, 'contains', '86') AS `_o__c10`, REFLECT2(`value`, 'startsWith', 'v') AS `_o__c11`, REFLECT2(`value`, 'endsWith', '6') AS `_o__c12`, REFLECT2(`value`, 'equals', 'val_86') AS `_o__c13`, REFLECT2(`value`, 'equalsIgnoreCase', 'VAL_86') AS `_o__c14`, REFLECT2(`value`, 'getBytes') AS `_o__c15`, REFLECT2(`value`, 'indexOf', '1') AS `_o__c16`, REFLECT2(`value`, 'lastIndexOf', '1') AS `_o__c17`, REFLECT2(`value`, 'replace', 'val', 'VALUE') AS `_o__c18`, REFLECT2(`value`, 'substring', 1) AS `_o__c19`, REFLECT2(`value`, 'substring', 1, 5) AS `_o__c20`, REFLECT2(`value`, 'toUpperCase') AS `_o__c21`, REFLECT2(`value`, 'trim') AS `_o__c22`, CAST(TIMESTAMP '2013-02-15 19:41:20.000000000' AS TIMESTAMP(9)) AS `ts`, CAST(2013 AS INTEGER) AS `_o__c24`, CAST(2 AS INTEGER) AS `_o__c25`, CAST(15 AS INTEGER) AS `_o__c26`, CAST(19 AS INTEGER) AS `_o__c27`, CAST(41 AS INTEGER) AS `_o__c28`, CAST(20 AS INTEGER) AS `_o__c29`, CAST(1360957280000 AS BIGINT) AS `_o__c30` +FROM `default`.`src` +LIMIT 5 STAGE DEPENDENCIES: Stage-0 is a root stage diff --git a/ql/src/test/results/clientpositive/union22.q.out b/ql/src/test/results/clientpositive/union22.q.out index 138082814e..d18fe68412 100644 --- a/ql/src/test/results/clientpositive/union22.q.out +++ b/ql/src/test/results/clientpositive/union22.q.out @@ -70,6 +70,17 @@ where a.k1 > 20 ) subq POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `k1`, `k2`, `k3`, `k4` +FROM `default`.`dst_union22_delta` +WHERE `ds` = '1' AND `k0` <= 50 +UNION ALL +SELECT `t2`.`k1`, `t2`.`k2`, `t4`.`k3`, `t4`.`k4` +FROM (SELECT `k1`, `k2`, `ds` +FROM `default`.`dst_union22` +WHERE `k1` > 20) AS `t2` +LEFT JOIN (SELECT `k1`, `k3`, `k4` +FROM `default`.`dst_union22_delta` +WHERE `ds` = '1' AND `k0` > 50 AND `k1` > 20) AS `t4` ON `t2`.`k1` = `t4`.`k1` AND `t2`.`ds` = '1' STAGE DEPENDENCIES: Stage-7 is a root stage , consists of Stage-8, Stage-4 Stage-8 has a backup stage: Stage-4 diff --git a/ql/src/test/results/clientpositive/union24.q.out b/ql/src/test/results/clientpositive/union24.q.out index 01d2777d3e..6305260b5e 100644 --- a/ql/src/test/results/clientpositive/union24.q.out +++ b/ql/src/test/results/clientpositive/union24.q.out @@ -68,6 +68,22 @@ select s.key, s.count from ( select key, count(1) as count from src5_n3 where key < 10 group by key )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM `default`.`src2_n6` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3_n2` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src4_n0` +WHERE `key` < 10 +UNION ALL +SELECT `key`, COUNT(*) AS `$f1` +FROM `default`.`src5_n3` +WHERE `key` < 10 +GROUP BY `key` STAGE DEPENDENCIES: Stage-5 is a root stage Stage-2 depends on stages: Stage-5 @@ -575,6 +591,21 @@ select s.key, s.count from ( select a.key as key, b.count as count from src4_n0 a join src5_n3 b on a.key=b.key where a.key < 10 )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM `default`.`src2_n6` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3_n2` +WHERE `key` < 10 +UNION ALL +SELECT `t4`.`key`, `t6`.`count` +FROM (SELECT `key` +FROM `default`.`src4_n0` +WHERE `key` < 10) AS `t4` +INNER JOIN (SELECT `key`, `count` +FROM `default`.`src5_n3` +WHERE `key` < 10) AS `t6` ON `t4`.`key` = `t6`.`key` STAGE DEPENDENCIES: Stage-4 is a root stage Stage-2 depends on stages: Stage-4 @@ -1059,6 +1090,22 @@ select s.key, s.count from ( select a.key as key, count(1) as count from src4_n0 a join src5_n3 b on a.key=b.key where a.key < 10 group by a.key )s POSTHOOK: type: QUERY +OPTIMIZED SQL: SELECT `key`, `count` +FROM `default`.`src2_n6` +WHERE `key` < 10 +UNION ALL +SELECT `key`, `count` +FROM `default`.`src3_n2` +WHERE `key` < 10 +UNION ALL +SELECT `t4`.`key`, COUNT(*) AS `$f1` +FROM (SELECT `key` +FROM `default`.`src4_n0` +WHERE `key` < 10) AS `t4` +INNER JOIN (SELECT `key` +FROM `default`.`src5_n3` +WHERE `key` < 10) AS `t6` ON `t4`.`key` = `t6`.`key` +GROUP BY `t4`.`key` STAGE DEPENDENCIES: Stage-4 is a root stage Stage-5 depends on stages: Stage-4 diff --git a/ql/src/test/results/clientpositive/vector_outer_join3.q.out b/ql/src/test/results/clientpositive/vector_outer_join3.q.out index 07a2c33d68..45d9c3eb2f 100644 --- a/ql/src/test/results/clientpositive/vector_outer_join3.q.out +++ b/ql/src/test/results/clientpositive/vector_outer_join3.q.out @@ -244,7 +244,7 @@ left outer join small_alltypesorc_a_n1 hd on hd.cstring1 = c.cstring1 ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cint"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","columnExprMap:":{"_col0":"cint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","columnExprMap:":{"_col0":"cstring1"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["cint","cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","columnExprMap:":{"_col0":"cint","_col1":"cstring1"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 6]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col1":"0:_col1"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 2:int"],"bigTableValueExpressions:":["col 6:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col1"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 6]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"optimizedSQL":"SELECT COUNT(*) AS `$f0`\nFROM (SELECT `cint`, `cstring1`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t`\nLEFT JOIN (SELECT `cint`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t0` ON `t`.`cint` = `t0`.`cint`\nLEFT JOIN (SELECT `cstring1`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t1` ON `t`.`cstring1` = `t1`.`cstring1`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cint"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","columnExprMap:":{"_col0":"cint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","columnExprMap:":{"_col0":"cstring1"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["cint","cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","columnExprMap:":{"_col0":"cint","_col1":"cstring1"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 6]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col1":"0:_col1"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 2:int"],"bigTableValueExpressions:":["col 6:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col1"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 6]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.cstring1 from small_alltypesorc_a_n1 c left outer join small_alltypesorc_a_n1 cd @@ -284,7 +284,7 @@ left outer join small_alltypesorc_a_n1 hd on hd.cstring1 = c.cstring1 ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cstring2 (type: string)","columnExprMap:":{"_col0":"cstring2"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","columnExprMap:":{"_col0":"cstring1"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["cstring1","cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cstring1 (type: string), cstring2 (type: string)","columnExprMap:":{"_col0":"cstring1","_col1":"cstring2"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 7:string"],"bigTableValueExpressions:":["col 6:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"optimizedSQL":"SELECT COUNT(*) AS `$f0`\nFROM (SELECT `cstring1`, `cstring2`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t`\nLEFT JOIN (SELECT `cstring2`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t0` ON `t`.`cstring2` = `t0`.`cstring2`\nLEFT JOIN (SELECT `cstring1`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t1` ON `t`.`cstring1` = `t1`.`cstring1`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cstring2 (type: string)","columnExprMap:":{"_col0":"cstring2"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","columnExprMap:":{"_col0":"cstring1"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["cstring1","cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cstring1 (type: string), cstring2 (type: string)","columnExprMap:":{"_col0":"cstring1","_col1":"cstring2"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 7:string"],"bigTableValueExpressions:":["col 6:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.cstring1 from small_alltypesorc_a_n1 c left outer join small_alltypesorc_a_n1 cd @@ -324,7 +324,7 @@ left outer join small_alltypesorc_a_n1 hd on hd.cstring1 = c.cstring1 and hd.cint = c.cint ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cbigint","cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cbigint (type: bigint), cstring2 (type: string)","columnExprMap:":{"_col0":"cbigint","_col1":"cstring2"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["cint","cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","columnExprMap:":{"_col0":"cint","_col1":"cstring1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["cint","cbigint","cstring1","cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cbigint (type: bigint), cstring1 (type: string), cstring2 (type: string)","columnExprMap:":{"_col0":"cint","_col1":"cbigint","_col2":"cstring1","_col3":"cstring2"},"outputColumnNames:":["_col0","_col1","_col2","_col3"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 3, 6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col2":"0:_col2"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 3:bigint","col 7:string"],"bigTableValueExpressions:":["col 2:int","col 6:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col2"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:int","col 1:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 3, 6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"optimizedSQL":"SELECT COUNT(*) AS `$f0`\nFROM (SELECT `cint`, `cbigint`, `cstring1`, `cstring2`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t`\nLEFT JOIN (SELECT `cbigint`, `cstring2`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t0` ON `t`.`cstring2` = `t0`.`cstring2` AND `t`.`cbigint` = `t0`.`cbigint`\nLEFT JOIN (SELECT `cint`, `cstring1`\nFROM `default`.`small_alltypesorc_a_n1`) AS `t1` ON `t`.`cstring1` = `t1`.`cstring1` AND `t`.`cint` = `t1`.`cint`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cbigint","cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cbigint (type: bigint), cstring2 (type: string)","columnExprMap:":{"_col0":"cbigint","_col1":"cstring2"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["cint","cstring1"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","columnExprMap:":{"_col0":"cint","_col1":"cstring1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["cint","cbigint","cstring1","cstring2"],"database:":"default","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_a_n1","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cbigint (type: bigint), cstring1 (type: string), cstring2 (type: string)","columnExprMap:":{"_col0":"cint","_col1":"cbigint","_col2":"cstring1","_col3":"cstring2"},"outputColumnNames:":["_col0","_col1","_col2","_col3"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 3, 6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col2":"0:_col2"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 3:bigint","col 7:string"],"bigTableValueExpressions:":["col 2:int","col 6:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col2"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:int","col 1:string"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 3, 6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.cstring1 from small_alltypesorc_a_n1 c left outer join small_alltypesorc_a_n1 cd diff --git a/ql/src/test/results/clientpositive/vector_outer_join4.q.out b/ql/src/test/results/clientpositive/vector_outer_join4.q.out index a96507d0a2..d0bfa41d1e 100644 --- a/ql/src/test/results/clientpositive/vector_outer_join4.q.out +++ b/ql/src/test/results/clientpositive/vector_outer_join4.q.out @@ -258,7 +258,7 @@ from small_alltypesorc_b c left outer join small_alltypesorc_b cd on cd.cint = c.cint POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-4":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-4"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-4":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), csmallint (type: smallint), cint (type: int), cbigint (type: bigint), cfloat (type: float), cdouble (type: double), cstring1 (type: string), cstring2 (type: string), ctimestamp1 (type: timestamp), ctimestamp2 (type: timestamp), cboolean1 (type: boolean), cboolean2 (type: boolean)","columnExprMap:":{"_col0":"ctinyint","_col1":"csmallint","_col10":"cboolean1","_col11":"cboolean2","_col2":"cint","_col3":"cbigint","_col4":"cfloat","_col5":"cdouble","_col6":"cstring1","_col7":"cstring2","_col8":"ctimestamp1","_col9":"ctimestamp2"},"outputColumnNames:":["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col2 (type: int)","1":"_col2 (type: int)"},"OperatorId:":"HASHTABLESINK_10"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), csmallint (type: smallint), cint (type: int), cbigint (type: bigint), cfloat (type: float), cdouble (type: double), cstring1 (type: string), cstring2 (type: string), ctimestamp1 (type: timestamp), ctimestamp2 (type: timestamp), cboolean1 (type: boolean), cboolean2 (type: boolean)","columnExprMap:":{"_col0":"ctinyint","_col1":"csmallint","_col10":"cboolean1","_col11":"cboolean2","_col2":"cint","_col3":"cbigint","_col4":"cfloat","_col5":"cdouble","_col6":"cstring1","_col7":"cstring2","_col8":"ctimestamp1","_col9":"ctimestamp2"},"outputColumnNames:":["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_12","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col10":"0:_col10","_col11":"0:_col11","_col12":"1:_col0","_col13":"1:_col1","_col14":"1:_col2","_col15":"1:_col3","_col16":"1:_col4","_col17":"1:_col5","_col18":"1:_col6","_col19":"1:_col7","_col2":"0:_col2","_col20":"1:_col8","_col21":"1:_col9","_col22":"1:_col10","_col23":"1:_col11","_col3":"0:_col3","_col4":"0:_col4","_col5":"0:_col5","_col6":"0:_col6","_col7":"0:_col7","_col8":"0:_col8","_col9":"0:_col9"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col2 (type: int)","1":"_col2 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 2:int"],"bigTableValueExpressions:":["col 0:tinyint","col 1:smallint","col 2:int","col 3:bigint","col 4:float","col 5:double","col 6:string","col 7:string","col 8:timestamp","col 9:timestamp","col 10:boolean","col 11:boolean"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_13","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_14"}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[bigint, bigint, bigint, bigint, double, double, string, string, timestamp, timestamp, bigint, bigint]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_15"}}}}}} +{"optimizedSQL":"SELECT *\nFROM (SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2`\nFROM `default`.`small_alltypesorc_b`) AS `t`\nLEFT JOIN (SELECT `ctinyint`, `csmallint`, `cint`, `cbigint`, `cfloat`, `cdouble`, `cstring1`, `cstring2`, `ctimestamp1`, `ctimestamp2`, `cboolean1`, `cboolean2`\nFROM `default`.`small_alltypesorc_b`) AS `t0` ON `t`.`cint` = `t0`.`cint`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-4":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-4"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-4":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), csmallint (type: smallint), cint (type: int), cbigint (type: bigint), cfloat (type: float), cdouble (type: double), cstring1 (type: string), cstring2 (type: string), ctimestamp1 (type: timestamp), ctimestamp2 (type: timestamp), cboolean1 (type: boolean), cboolean2 (type: boolean)","columnExprMap:":{"_col0":"ctinyint","_col1":"csmallint","_col10":"cboolean1","_col11":"cboolean2","_col2":"cint","_col3":"cbigint","_col4":"cfloat","_col5":"cdouble","_col6":"cstring1","_col7":"cstring2","_col8":"ctimestamp1","_col9":"ctimestamp2"},"outputColumnNames:":["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col2 (type: int)","1":"_col2 (type: int)"},"OperatorId:":"HASHTABLESINK_10"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["ctinyint","csmallint","cint","cbigint","cfloat","cdouble","cstring1","cstring2","ctimestamp1","ctimestamp2","cboolean1","cboolean2"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), csmallint (type: smallint), cint (type: int), cbigint (type: bigint), cfloat (type: float), cdouble (type: double), cstring1 (type: string), cstring2 (type: string), ctimestamp1 (type: timestamp), ctimestamp2 (type: timestamp), cboolean1 (type: boolean), cboolean2 (type: boolean)","columnExprMap:":{"_col0":"ctinyint","_col1":"csmallint","_col10":"cboolean1","_col11":"cboolean2","_col2":"cint","_col3":"cbigint","_col4":"cfloat","_col5":"cdouble","_col6":"cstring1","_col7":"cstring2","_col8":"ctimestamp1","_col9":"ctimestamp2"},"outputColumnNames:":["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_12","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col10":"0:_col10","_col11":"0:_col11","_col12":"1:_col0","_col13":"1:_col1","_col14":"1:_col2","_col15":"1:_col3","_col16":"1:_col4","_col17":"1:_col5","_col18":"1:_col6","_col19":"1:_col7","_col2":"0:_col2","_col20":"1:_col8","_col21":"1:_col9","_col22":"1:_col10","_col23":"1:_col11","_col3":"0:_col3","_col4":"0:_col4","_col5":"0:_col5","_col6":"0:_col6","_col7":"0:_col7","_col8":"0:_col8","_col9":"0:_col9"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col2 (type: int)","1":"_col2 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 2:int"],"bigTableValueExpressions:":["col 0:tinyint","col 1:smallint","col 2:int","col 3:bigint","col 4:float","col 5:double","col 6:string","col 7:string","col 8:timestamp","col 9:timestamp","col 10:boolean","col 11:boolean"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_13","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_14"}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[bigint, bigint, bigint, bigint, double, double, string, string, timestamp, timestamp, bigint, bigint]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_15"}}}}}} PREHOOK: query: select * from small_alltypesorc_b c left outer join small_alltypesorc_b cd @@ -339,7 +339,7 @@ from small_alltypesorc_b c left outer join small_alltypesorc_b hd on hd.ctinyint = c.ctinyint POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-4":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-4"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-4":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:hd":{"TableScan":{"alias:":"hd","columns:":["ctinyint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","columnExprMap:":{"_col0":"ctinyint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"OperatorId:":"HASHTABLESINK_10"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["ctinyint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","columnExprMap:":{"_col0":"ctinyint"},"outputColumnNames:":["_col0"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_12","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:tinyint"],"bigTableValueExpressions:":["col 0:tinyint"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_13","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_14"}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_15"}}}}}} +{"optimizedSQL":"SELECT `t`.`ctinyint`\nFROM (SELECT `ctinyint`\nFROM `default`.`small_alltypesorc_b`) AS `t`\nLEFT JOIN (SELECT `ctinyint`\nFROM `default`.`small_alltypesorc_b`) AS `t0` ON `t`.`ctinyint` = `t0`.`ctinyint`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-4":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-4"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-4":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:hd":{"TableScan":{"alias:":"hd","columns:":["ctinyint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","columnExprMap:":{"_col0":"ctinyint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"OperatorId:":"HASHTABLESINK_10"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["ctinyint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","columnExprMap:":{"_col0":"ctinyint"},"outputColumnNames:":["_col0"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_12","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:tinyint"],"bigTableValueExpressions:":["col 0:tinyint"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_13","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_14"}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_15"}}}}}} PREHOOK: query: select c.ctinyint from small_alltypesorc_b c left outer join small_alltypesorc_b hd @@ -782,7 +782,7 @@ left outer join small_alltypesorc_b hd on hd.ctinyint = c.ctinyint ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","columnExprMap:":{"_col0":"cint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["ctinyint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","columnExprMap:":{"_col0":"ctinyint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["ctinyint","cint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), cint (type: int)","columnExprMap:":{"_col0":"ctinyint","_col1":"cint"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 2]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 2:int"],"bigTableValueExpressions:":["col 0:tinyint"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:tinyint"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 36 Data size: 8082 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0, 2]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"optimizedSQL":"SELECT COUNT(*) AS `$f0`\nFROM (SELECT `ctinyint`, `cint`\nFROM `default`.`small_alltypesorc_b`) AS `t`\nLEFT JOIN (SELECT `cint`\nFROM `default`.`small_alltypesorc_b`) AS `t0` ON `t`.`cint` = `t0`.`cint`\nLEFT JOIN (SELECT `ctinyint`\nFROM `default`.`small_alltypesorc_b`) AS `t1` ON `t`.`ctinyint` = `t1`.`ctinyint`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","columns:":["cint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","columnExprMap:":{"_col0":"cint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","columns:":["ctinyint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","isTempTable:":"false","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","columnExprMap:":{"_col0":"ctinyint"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","columns:":["ctinyint","cint"],"database:":"default","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","table:":"small_alltypesorc_b","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), cint (type: int)","columnExprMap:":{"_col0":"ctinyint","_col1":"cint"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 2]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 2:int"],"bigTableValueExpressions:":["col 0:tinyint"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 0:tinyint"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 36 Data size: 8082 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumnNums:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"columnExprMap:":{"VALUE._col0":"_col0"},"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0, 2]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[]"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.ctinyint from small_alltypesorc_b c left outer join small_alltypesorc_b cd diff --git a/ql/src/test/results/clientpositive/vector_outer_join6.q.out b/ql/src/test/results/clientpositive/vector_outer_join6.q.out index 715196547f..3c24928ffa 100644 --- a/ql/src/test/results/clientpositive/vector_outer_join6.q.out +++ b/ql/src/test/results/clientpositive/vector_outer_join6.q.out @@ -130,7 +130,7 @@ POSTHOOK: query: explain vectorization detail formatted select tj1rnum, tj2rnum, tjoin3.rnum as rnumt3 from (select tjoin1_n0.rnum tj1rnum, tjoin2_n0.rnum tj2rnum, tjoin2_n0.c1 tj2c1 from tjoin1_n0 left outer join tjoin2_n0 on tjoin1_n0.c1 = tjoin2_n0.c1 ) tj left outer join tjoin3 on tj2c1 = tjoin3.c1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-7":{"ROOT STAGE":"TRUE"},"Stage-5":{"DEPENDENT STAGES":"Stage-7"},"Stage-0":{"DEPENDENT STAGES":"Stage-5"}},"STAGE PLANS":{"Stage-7":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_1:tjoin3":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"TableScan":{"alias:":"tjoin2_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin2_n0","isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_1","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"OperatorId:":"HASHTABLESINK_21"}}}}}},"$hdt$_1:tjoin3":{"TableScan":{"alias:":"tjoin3","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin3","isTempTable:":"false","OperatorId:":"TS_8","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_9","children":{"HashTable Sink Operator":{"keys:":{"0":"_col2 (type: int)","1":"_col1 (type: int)"},"OperatorId:":"HASHTABLESINK_19"}}}}}}}}},"Stage-5":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"tjoin1_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin1_n0","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:rnum:int, 1:c1:int, 2:c2:int, 3:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1]"},"Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_23","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col2":"1:_col0"},"condition map:":[{"":"Right Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col2"],"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_24","children":{"Select Operator":{"expressions:":"_col2 (type: int), _col0 (type: int), _col1 (type: int)","columnExprMap:":{"_col0":"_col2","_col1":"_col0","_col2":"_col1"},"outputColumnNames:":["_col0","_col1","_col2"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 0, 1]"},"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_25","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col3":"1:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col2 (type: int)","1":"_col1 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 2:int","col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col3"],"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_26","children":{"Select Operator":{"expressions:":"_col0 (type: int), _col1 (type: int), _col3 (type: int)","columnExprMap:":{"_col0":"_col0","_col1":"_col1","_col2":"_col3"},"outputColumnNames:":["_col0","_col1","_col2"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1, 2]"},"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_27","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_28"}}}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"3","includeColumns:":"[0, 1]","dataColumns:":["rnum:int","c1:int","c2:int"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[bigint, bigint]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_29"}}}}}} +{"optimizedSQL":"SELECT `t1`.`tj1rnum`, `t1`.`tj2rnum`, `t2`.`rnum` AS `rnumt3`\nFROM (SELECT `t0`.`rnum` AS `tj1rnum`, `t`.`rnum` AS `tj2rnum`, `t`.`c1` AS `tj2c1`\nFROM (SELECT `rnum`, `c1`\nFROM `default`.`tjoin2_n0`) AS `t`\nRIGHT JOIN (SELECT `rnum`, `c1`\nFROM `default`.`tjoin1_n0`) AS `t0` ON `t`.`c1` = `t0`.`c1`) AS `t1`\nLEFT JOIN (SELECT `rnum`, `c1`\nFROM `default`.`tjoin3`) AS `t2` ON `t1`.`tj2c1` = `t2`.`c1`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-7":{"ROOT STAGE":"TRUE"},"Stage-5":{"DEPENDENT STAGES":"Stage-7"},"Stage-0":{"DEPENDENT STAGES":"Stage-5"}},"STAGE PLANS":{"Stage-7":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_1:tjoin3":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"TableScan":{"alias:":"tjoin2_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin2_n0","isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_1","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"OperatorId:":"HASHTABLESINK_21"}}}}}},"$hdt$_1:tjoin3":{"TableScan":{"alias:":"tjoin3","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin3","isTempTable:":"false","OperatorId:":"TS_8","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_9","children":{"HashTable Sink Operator":{"keys:":{"0":"_col2 (type: int)","1":"_col1 (type: int)"},"OperatorId:":"HASHTABLESINK_19"}}}}}}}}},"Stage-5":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"tjoin1_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin1_n0","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:rnum:int, 1:c1:int, 2:c2:int, 3:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1]"},"Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_23","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col2":"1:_col0"},"condition map:":[{"":"Right Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col2"],"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_24","children":{"Select Operator":{"expressions:":"_col2 (type: int), _col0 (type: int), _col1 (type: int)","columnExprMap:":{"_col0":"_col2","_col1":"_col0","_col2":"_col1"},"outputColumnNames:":["_col0","_col1","_col2"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 0, 1]"},"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_25","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col3":"1:_col0"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col2 (type: int)","1":"_col1 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 2:int","col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col3"],"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_26","children":{"Select Operator":{"expressions:":"_col0 (type: int), _col1 (type: int), _col3 (type: int)","columnExprMap:":{"_col0":"_col0","_col1":"_col1","_col2":"_col3"},"outputColumnNames:":["_col0","_col1","_col2"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1, 2]"},"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_27","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_28"}}}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"3","includeColumns:":"[0, 1]","dataColumns:":["rnum:int","c1:int","c2:int"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[bigint, bigint]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_29"}}}}}} PREHOOK: query: select tj1rnum, tj2rnum, tjoin3.rnum as rnumt3 from (select tjoin1_n0.rnum tj1rnum, tjoin2_n0.rnum tj2rnum, tjoin2_n0.c1 tj2c1 from tjoin1_n0 left outer join tjoin2_n0 on tjoin1_n0.c1 = tjoin2_n0.c1 ) tj left outer join tjoin3 on tj2c1 = tjoin3.c1 PREHOOK: type: QUERY @@ -157,7 +157,7 @@ POSTHOOK: query: explain vectorization detail formatted select tj1rnum, tj2rnum as rnumt3 from (select tjoin1_n0.rnum tj1rnum, tjoin2_n0.rnum tj2rnum, tjoin2_n0.c1 tj2c1 from tjoin1_n0 left outer join tjoin2_n0 on tjoin1_n0.c1 = tjoin2_n0.c1 ) tj left outer join tjoin3 on tj2c1 = tjoin3.c1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-7":{"ROOT STAGE":"TRUE"},"Stage-5":{"DEPENDENT STAGES":"Stage-7"},"Stage-0":{"DEPENDENT STAGES":"Stage-5"}},"STAGE PLANS":{"Stage-7":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_1:tjoin3":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"TableScan":{"alias:":"tjoin2_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin2_n0","isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_1","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"OperatorId:":"HASHTABLESINK_21"}}}}}},"$hdt$_1:tjoin3":{"TableScan":{"alias:":"tjoin3","columns:":["c1"],"database:":"default","Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin3","isTempTable:":"false","OperatorId:":"TS_8","children":{"Select Operator":{"expressions:":"c1 (type: int)","columnExprMap:":{"_col0":"c1"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_9","children":{"HashTable Sink Operator":{"keys:":{"0":"_col2 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_19"}}}}}}}}},"Stage-5":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"tjoin1_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin1_n0","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:rnum:int, 1:c1:int, 2:c2:int, 3:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1]"},"Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_23","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col2":"1:_col0"},"condition map:":[{"":"Right Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col2"],"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_24","children":{"Select Operator":{"expressions:":"_col2 (type: int), _col0 (type: int), _col1 (type: int)","columnExprMap:":{"_col0":"_col2","_col1":"_col0","_col2":"_col1"},"outputColumnNames:":["_col0","_col1","_col2"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 0, 1]"},"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_25","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col2 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 2:int","col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_26","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_27"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"3","includeColumns:":"[0, 1]","dataColumns:":["rnum:int","c1:int","c2:int"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[bigint, bigint]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_28"}}}}}} +{"optimizedSQL":"SELECT `t1`.`tj1rnum`, `t1`.`tj2rnum` AS `rnumt3`\nFROM (SELECT `t0`.`rnum` AS `tj1rnum`, `t`.`rnum` AS `tj2rnum`, `t`.`c1` AS `tj2c1`\nFROM (SELECT `rnum`, `c1`\nFROM `default`.`tjoin2_n0`) AS `t`\nRIGHT JOIN (SELECT `rnum`, `c1`\nFROM `default`.`tjoin1_n0`) AS `t0` ON `t`.`c1` = `t0`.`c1`) AS `t1`\nLEFT JOIN (SELECT `c1`\nFROM `default`.`tjoin3`) AS `t2` ON `t1`.`tj2c1` = `t2`.`c1`","PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-7":{"ROOT STAGE":"TRUE"},"Stage-5":{"DEPENDENT STAGES":"Stage-7"},"Stage-0":{"DEPENDENT STAGES":"Stage-5"}},"STAGE PLANS":{"Stage-7":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_1:tjoin3":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_0:$hdt$_0:tjoin2_n0":{"TableScan":{"alias:":"tjoin2_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin2_n0","isTempTable:":"false","OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_1","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"OperatorId:":"HASHTABLESINK_21"}}}}}},"$hdt$_1:tjoin3":{"TableScan":{"alias:":"tjoin3","columns:":["c1"],"database:":"default","Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin3","isTempTable:":"false","OperatorId:":"TS_8","children":{"Select Operator":{"expressions:":"c1 (type: int)","columnExprMap:":{"_col0":"c1"},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 2 Data size: 188 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_9","children":{"HashTable Sink Operator":{"keys:":{"0":"_col2 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_19"}}}}}}}}},"Stage-5":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"tjoin1_n0","columns:":["rnum","c1"],"database:":"default","Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","table:":"tjoin1_n0","TableScan Vectorization:":{"native:":"true","vectorizationSchemaColumns:":"[0:rnum:int, 1:c1:int, 2:c2:int, 3:ROW__ID:struct]"},"isTempTable:":"false","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"rnum (type: int), c1 (type: int)","columnExprMap:":{"_col0":"rnum","_col1":"c1"},"outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[0, 1]"},"Statistics:":"Num rows: 3 Data size: 32 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_23","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1","_col2":"1:_col0"},"condition map:":[{"":"Right Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col1 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1","_col2"],"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_24","children":{"Select Operator":{"expressions:":"_col2 (type: int), _col0 (type: int), _col1 (type: int)","columnExprMap:":{"_col0":"_col2","_col1":"_col0","_col2":"_col1"},"outputColumnNames:":["_col0","_col1","_col2"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumnNums:":"[2, 0, 1]"},"Statistics:":"Num rows: 4 Data size: 409 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_25","children":{"Map Join Operator":{"columnExprMap:":{"_col0":"0:_col0","_col1":"0:_col1"},"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col2 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"bigTableKeyExpressions:":["col 1:int"],"bigTableValueExpressions:":["col 2:int","col 0:int"],"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Outer Join has keys IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_26","children":{"File Output Operator":{"compressed:":"false","File Sink Vectorization:":{"className:":"VectorFileSinkOperator","native:":"false"},"Statistics:":"Num rows: 4 Data size: 449 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_27"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"inputFormatFeatureSupport:":"[DECIMAL_64]","featureSupportInUse:":"[DECIMAL_64]","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"3","includeColumns:":"[0, 1]","dataColumns:":["rnum:int","c1:int","c2:int"],"partitionColumnCount:":"0","scratchColumnTypeNames:":"[bigint, bigint]"}},"Local Work:":{"Map Reduce Local Work":{}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_28"}}}}}} PREHOOK: query: select tj1rnum, tj2rnum as rnumt3 from (select tjoin1_n0.rnum tj1rnum, tjoin2_n0.rnum tj2rnum, tjoin2_n0.c1 tj2c1 from tjoin1_n0 left outer join tjoin2_n0 on tjoin1_n0.c1 = tjoin2_n0.c1 ) tj left outer join tjoin3 on tj2c1 = tjoin3.c1 PREHOOK: type: QUERY