Author: hashutosh Date: Thu Dec 19 22:49:01 2013 New Revision: 1552449 URL: http://svn.apache.org/r1552449 Log: HIVE-6052 : metastore JDO filter pushdown for integers may produce unexpected results with non-normalized integer columns (Sergey Shelukhin via Ashutosh Chauhan)
Modified: hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java hive/trunk/ql/src/test/queries/clientpositive/alter_partition_coltype.q hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_part.q hive/trunk/ql/src/test/queries/clientpositive/dynamic_partition_skip_default.q hive/trunk/ql/src/test/results/clientpositive/alter_partition_coltype.q.out hive/trunk/ql/src/test/results/clientpositive/annotate_stats_part.q.out hive/trunk/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out Modified: hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java URL: http://svn.apache.org/viewvc/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (original) +++ hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java Thu Dec 19 22:49:01 2013 @@ -340,6 +340,9 @@ public class HiveConf extends Configurat METASTORE_EXECUTE_SET_UGI("hive.metastore.execute.setugi", false), METASTORE_PARTITION_NAME_WHITELIST_PATTERN( "hive.metastore.partition.name.whitelist.pattern", ""), + // Whether to enable integral JDO pushdown. For partition columns storing integers + // in non-canonical form, (e.g. '012'), it may not work, so it's off by default. + METASTORE_INTEGER_JDO_PUSHDOWN("hive.metastore.integral.jdo.pushdown", false), METASTORE_TRY_DIRECT_SQL("hive.metastore.try.direct.sql", true), METASTORE_TRY_DIRECT_SQL_DDL("hive.metastore.try.direct.sql.ddl", true), METASTORE_DISALLOW_INCOMPATIBLE_COL_TYPE_CHANGES( Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java (original) +++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java Thu Dec 19 22:49:01 2013 @@ -745,9 +745,6 @@ class MetaStoreDirectSql { return; } - // Force string-based handling in some cases to be compatible with JDO pushdown. - boolean forceStringEq = !isStringCol && node.canJdoUseStringsWithIntegral(); - if (joins.isEmpty()) { // There's a fixed number of partition cols that we might have filters on. To avoid // joining multiple times for one column (if there are several filters on it), we will @@ -765,16 +762,24 @@ class MetaStoreDirectSql { // Build the filter and add parameters linearly; we are traversing leaf nodes LTR. String tableValue = "\"FILTER" + partColIndex + "\".\"PART_KEY_VAL\""; - if (!isStringCol && !forceStringEq) { + if (node.isReverseOrder) { + params.add(node.value); + } + if (!isStringCol) { // The underlying database field is varchar, we need to compare numbers. + // Note that this won't work with __HIVE_DEFAULT_PARTITION__. It will fail and fall + // back to JDO. That is by design; we could add an ugly workaround here but didn't. tableValue = "cast(" + tableValue + " as decimal(21,0))"; + // This is a workaround for DERBY-6358; as such, it is pretty horrible. tableValue = "(case when \"TBLS\".\"TBL_NAME\" = ? and \"DBS\".\"NAME\" = ? then " + tableValue + " else null end)"; params.add(table.getTableName().toLowerCase()); params.add(table.getDbName().toLowerCase()); } - params.add(forceStringEq ? node.value.toString() : node.value); + if (!node.isReverseOrder) { + params.add(node.value); + } filterBuffer.append(node.isReverseOrder ? "(? " + node.operator.getSqlOp() + " " + tableValue + ")" Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (original) +++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java Thu Dec 19 22:49:01 2013 @@ -2199,7 +2199,7 @@ public class ObjectStore implements RawS params.put("dbName", dbName); } - tree.generateJDOFilterFragment(table, params, queryBuilder); + tree.generateJDOFilterFragment(getConf(), table, params, queryBuilder); if (queryBuilder.hasError()) { assert !isValidatedFilter; LOG.info("JDO filter pushdown cannot be used: " + queryBuilder.getErrorMessage()); Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java (original) +++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java Thu Dec 19 22:49:01 2013 @@ -24,8 +24,9 @@ import java.util.Stack; import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.CharStream; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.common.FileUtils; -import org.apache.hadoop.hive.metastore.ObjectStore; +import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.Warehouse; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.metastore.api.Table; @@ -231,12 +232,12 @@ public class ExpressionTree { * @return a JDO filter statement * @throws MetaException */ - public void generateJDOFilter(Table table, Map<String, Object> params, - FilterBuilder filterBuffer) throws MetaException { + public void generateJDOFilter(Configuration conf, Table table, + Map<String, Object> params, FilterBuilder filterBuffer) throws MetaException { if (filterBuffer.hasError()) return; if (lhs != null) { filterBuffer.append (" ("); - lhs.generateJDOFilter(table, params, filterBuffer); + lhs.generateJDOFilter(conf, table, params, filterBuffer); if (rhs != null) { if( andOr == LogicalOperator.AND ) { @@ -245,7 +246,7 @@ public class ExpressionTree { filterBuffer.append(" || "); } - rhs.generateJDOFilter(table, params, filterBuffer); + rhs.generateJDOFilter(conf, table, params, filterBuffer); } filterBuffer.append (") "); } @@ -269,10 +270,10 @@ public class ExpressionTree { } @Override - public void generateJDOFilter(Table table, Map<String, Object> params, + public void generateJDOFilter(Configuration conf, Table table, Map<String, Object> params, FilterBuilder filterBuilder) throws MetaException { if (table != null) { - generateJDOFilterOverPartitions(table, params, filterBuilder); + generateJDOFilterOverPartitions(conf, table, params, filterBuilder); } else { generateJDOFilterOverTables(params, filterBuilder); } @@ -342,13 +343,16 @@ public class ExpressionTree { } } - private void generateJDOFilterOverPartitions(Table table, Map<String, Object> params, - FilterBuilder filterBuilder) throws MetaException { + private void generateJDOFilterOverPartitions(Configuration conf, Table table, + Map<String, Object> params, FilterBuilder filterBuilder) throws MetaException { int partitionColumnCount = table.getPartitionKeys().size(); int partitionColumnIndex = getPartColIndexForFilter(table, filterBuilder); if (filterBuilder.hasError()) return; - String valueAsString = getJdoFilterPushdownParam(table, partitionColumnIndex, filterBuilder); + boolean canPushDownIntegral = + HiveConf.getBoolVar(conf, HiveConf.ConfVars.METASTORE_INTEGER_JDO_PUSHDOWN); + String valueAsString = getJdoFilterPushdownParam( + table, partitionColumnIndex, filterBuilder, canPushDownIntegral); if (filterBuilder.hasError()) return; String paramName = PARAM_PREFIX + params.size(); @@ -435,9 +439,9 @@ public class ExpressionTree { * @param filterBuilder filter builder used to report error, if any. * @return The parameter string. */ - private String getJdoFilterPushdownParam( - Table table, int partColIndex, FilterBuilder filterBuilder) throws MetaException { - boolean isIntegralSupported = canJdoUseStringsWithIntegral(); + private String getJdoFilterPushdownParam(Table table, int partColIndex, + FilterBuilder filterBuilder, boolean canPushDownIntegral) throws MetaException { + boolean isIntegralSupported = canPushDownIntegral && canJdoUseStringsWithIntegral(); String colType = table.getPartitionKeys().get(partColIndex).getType(); // Can only support partitions whose types are string, or maybe integers if (!colType.equals(serdeConstants.STRING_TYPE_NAME) @@ -567,14 +571,14 @@ public class ExpressionTree { * are the parameter values * @param filterBuilder the filter builder to append to. */ - public void generateJDOFilterFragment(Table table, Map<String, Object> params, - FilterBuilder filterBuilder) throws MetaException { + public void generateJDOFilterFragment(Configuration conf, Table table, + Map<String, Object> params, FilterBuilder filterBuilder) throws MetaException { if (root == null) { return; } filterBuilder.append(" && ( "); - root.generateJDOFilter(table, params, filterBuilder); + root.generateJDOFilter(conf, table, params, filterBuilder); filterBuilder.append(" )"); } Modified: hive/trunk/ql/src/test/queries/clientpositive/alter_partition_coltype.q URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/alter_partition_coltype.q?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/ql/src/test/queries/clientpositive/alter_partition_coltype.q (original) +++ hive/trunk/ql/src/test/queries/clientpositive/alter_partition_coltype.q Thu Dec 19 22:49:01 2013 @@ -19,7 +19,7 @@ insert overwrite table alter_coltype par select count(*) from alter_coltype where dt = '100x'; explain extended select count(*) from alter_coltype where dt = '100x'; -select count(*) from alter_coltype where dt = 100; +select count(*) from alter_coltype where dt = '100'; -- alter partition key column data type for ts column. alter table alter_coltype partition column (ts double); Modified: hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_part.q URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_part.q?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_part.q (original) +++ hive/trunk/ql/src/test/queries/clientpositive/annotate_stats_part.q Thu Dec 19 22:49:01 2013 @@ -7,7 +7,7 @@ create table if not exists loc_staging ( state string, locid int, zip bigint, - year int + year string ) row format delimited fields terminated by '|' stored as textfile; LOAD DATA LOCAL INPATH '../../data/files/loc.txt' OVERWRITE INTO TABLE loc_staging; @@ -16,7 +16,7 @@ create table if not exists loc_orc ( state string, locid int, zip bigint -) partitioned by(year int) stored as orc; +) partitioned by(year string) stored as orc; -- basicStatState: NONE colStatState: NONE explain extended select * from loc_orc; @@ -29,7 +29,7 @@ insert overwrite table loc_orc partition explain extended select * from loc_orc; -- partition level analyze statistics for specific parition -analyze table loc_orc partition(year=2001) compute statistics; +analyze table loc_orc partition(year='2001') compute statistics; -- basicStatState: PARTIAL colStatState: NONE explain extended select * from loc_orc where year='__HIVE_DEFAULT_PARTITION__'; @@ -38,7 +38,7 @@ explain extended select * from loc_orc w explain extended select * from loc_orc; -- basicStatState: COMPLETE colStatState: NONE -explain extended select * from loc_orc where year=2001; +explain extended select * from loc_orc where year='2001'; -- partition level analyze statistics for all partitions analyze table loc_orc partition(year) compute statistics; @@ -50,14 +50,14 @@ explain extended select * from loc_orc w explain extended select * from loc_orc; -- basicStatState: COMPLETE colStatState: NONE -explain extended select * from loc_orc where year=2001 or year='__HIVE_DEFAULT_PARTITION__'; +explain extended select * from loc_orc where year='2001' or year='__HIVE_DEFAULT_PARTITION__'; -- both partitions will be pruned -- basicStatState: NONE colStatState: NONE -explain extended select * from loc_orc where year=2001 and year='__HIVE_DEFAULT_PARTITION__'; +explain extended select * from loc_orc where year='2001' and year='__HIVE_DEFAULT_PARTITION__'; -- partition level partial column statistics -analyze table loc_orc partition(year=2001) compute statistics for columns state,locid; +analyze table loc_orc partition(year='2001') compute statistics for columns state,locid; -- basicStatState: COMPLETE colStatState: NONE explain extended select zip from loc_orc; @@ -70,16 +70,16 @@ explain extended select state from loc_o explain extended select state,locid from loc_orc; -- basicStatState: COMPLETE colStatState: COMPLETE -explain extended select state,locid from loc_orc where year=2001; +explain extended select state,locid from loc_orc where year='2001'; -- basicStatState: COMPLETE colStatState: NONE -explain extended select state,locid from loc_orc where year!=2001; +explain extended select state,locid from loc_orc where year!='2001'; -- basicStatState: COMPLETE colStatState: PARTIAL explain extended select * from loc_orc; -- This is to test filter expression evaluation on partition column -- numRows: 2 dataSize: 8 basicStatState: COMPLETE colStatState: COMPLETE -explain extended select locid from loc_orc where locid>0 and year=2001; -explain extended select locid,year from loc_orc where locid>0 and year=2001; -explain extended select * from (select locid,year from loc_orc) test where locid>0 and year=2001; +explain extended select locid from loc_orc where locid>0 and year='2001'; +explain extended select locid,year from loc_orc where locid>0 and year='2001'; +explain extended select * from (select locid,year from loc_orc) test where locid>0 and year='2001'; Modified: hive/trunk/ql/src/test/queries/clientpositive/dynamic_partition_skip_default.q URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/dynamic_partition_skip_default.q?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/ql/src/test/queries/clientpositive/dynamic_partition_skip_default.q (original) +++ hive/trunk/ql/src/test/queries/clientpositive/dynamic_partition_skip_default.q Thu Dec 19 22:49:01 2013 @@ -1,19 +1,19 @@ -create table dynamic_part_table(intcol int) partitioned by (partcol1 int, partcol2 int); +create table dynamic_part_table(intcol string) partitioned by (partcol1 string, partcol2 string); set hive.exec.dynamic.partition.mode=nonstrict; -insert into table dynamic_part_table partition(partcol1, partcol2) select 1, 1, 1 from src where key=150; +insert into table dynamic_part_table partition(partcol1, partcol2) select '1', '1', '1' from src where key=150; -insert into table dynamic_part_table partition(partcol1, partcol2) select 1, NULL, 1 from src where key=150; +insert into table dynamic_part_table partition(partcol1, partcol2) select '1', NULL, '1' from src where key=150; -insert into table dynamic_part_table partition(partcol1, partcol2) select 1, 1, NULL from src where key=150; +insert into table dynamic_part_table partition(partcol1, partcol2) select '1', '1', NULL from src where key=150; -insert into table dynamic_part_table partition(partcol1, partcol2) select 1, NULL, NULL from src where key=150; +insert into table dynamic_part_table partition(partcol1, partcol2) select '1', NULL, NULL from src where key=150; -explain extended select intcol from dynamic_part_table where partcol1=1 and partcol2=1; +explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1'; set hive.exec.dynamic.partition.mode=strict; -explain extended select intcol from dynamic_part_table where partcol1=1 and partcol2=1; +explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1'; -explain extended select intcol from dynamic_part_table where (partcol1=1 and partcol2=1)or (partcol1=1 and partcol2='__HIVE_DEFAULT_PARTITION__'); +explain extended select intcol from dynamic_part_table where (partcol1='1' and partcol2='1')or (partcol1='1' and partcol2='__HIVE_DEFAULT_PARTITION__'); Modified: hive/trunk/ql/src/test/results/clientpositive/alter_partition_coltype.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/alter_partition_coltype.q.out?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/alter_partition_coltype.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/alter_partition_coltype.q.out Thu Dec 19 22:49:01 2013 @@ -225,11 +225,11 @@ STAGE PLANS: Fetch Operator limit: -1 -PREHOOK: query: select count(*) from alter_coltype where dt = 100 +PREHOOK: query: select count(*) from alter_coltype where dt = '100' PREHOOK: type: QUERY PREHOOK: Input: default@alter_coltype #### A masked pattern was here #### -POSTHOOK: query: select count(*) from alter_coltype where dt = 100 +POSTHOOK: query: select count(*) from alter_coltype where dt = '100' POSTHOOK: type: QUERY POSTHOOK: Input: default@alter_coltype #### A masked pattern was here #### Modified: hive/trunk/ql/src/test/results/clientpositive/annotate_stats_part.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/annotate_stats_part.q.out?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/annotate_stats_part.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/annotate_stats_part.q.out Thu Dec 19 22:49:01 2013 @@ -2,14 +2,14 @@ PREHOOK: query: create table if not exis state string, locid int, zip bigint, - year int + year string ) row format delimited fields terminated by '|' stored as textfile PREHOOK: type: CREATETABLE POSTHOOK: query: create table if not exists loc_staging ( state string, locid int, zip bigint, - year int + year string ) row format delimited fields terminated by '|' stored as textfile POSTHOOK: type: CREATETABLE POSTHOOK: Output: default@loc_staging @@ -23,13 +23,13 @@ PREHOOK: query: create table if not exis state string, locid int, zip bigint -) partitioned by(year int) stored as orc +) partitioned by(year string) stored as orc PREHOOK: type: CREATETABLE POSTHOOK: query: create table if not exists loc_orc ( state string, locid int, zip bigint -) partitioned by(year int) stored as orc +) partitioned by(year string) stored as orc POSTHOOK: type: CREATETABLE POSTHOOK: Output: default@loc_orc PREHOOK: query: -- basicStatState: NONE colStatState: NONE @@ -211,14 +211,14 @@ STAGE PLANS: ListSink PREHOOK: query: -- partition level analyze statistics for specific parition -analyze table loc_orc partition(year=2001) compute statistics +analyze table loc_orc partition(year='2001') compute statistics PREHOOK: type: QUERY PREHOOK: Input: default@loc_orc PREHOOK: Input: default@loc_orc@year=2001 PREHOOK: Output: default@loc_orc PREHOOK: Output: default@loc_orc@year=2001 POSTHOOK: query: -- partition level analyze statistics for specific parition -analyze table loc_orc partition(year=2001) compute statistics +analyze table loc_orc partition(year='2001') compute statistics POSTHOOK: type: QUERY POSTHOOK: Input: default@loc_orc POSTHOOK: Input: default@loc_orc@year=2001 @@ -436,10 +436,10 @@ STAGE PLANS: ListSink PREHOOK: query: -- basicStatState: COMPLETE colStatState: NONE -explain extended select * from loc_orc where year=2001 +explain extended select * from loc_orc where year='2001' PREHOOK: type: QUERY POSTHOOK: query: -- basicStatState: COMPLETE colStatState: NONE -explain extended select * from loc_orc where year=2001 +explain extended select * from loc_orc where year='2001' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -448,7 +448,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL year) 2001)))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL year) '2001')))) STAGE DEPENDENCIES: Stage-0 is a root stage @@ -748,10 +748,10 @@ STAGE PLANS: ListSink PREHOOK: query: -- basicStatState: COMPLETE colStatState: NONE -explain extended select * from loc_orc where year=2001 or year='__HIVE_DEFAULT_PARTITION__' +explain extended select * from loc_orc where year='2001' or year='__HIVE_DEFAULT_PARTITION__' PREHOOK: type: QUERY POSTHOOK: query: -- basicStatState: COMPLETE colStatState: NONE -explain extended select * from loc_orc where year=2001 or year='__HIVE_DEFAULT_PARTITION__' +explain extended select * from loc_orc where year='2001' or year='__HIVE_DEFAULT_PARTITION__' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -760,7 +760,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (or (= (TOK_TABLE_OR_COL year) 2001) (= (TOK_TABLE_OR_COL year) '__HIVE_DEFAULT_PARTITION__'))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (or (= (TOK_TABLE_OR_COL year) '2001') (= (TOK_TABLE_OR_COL year) '__HIVE_DEFAULT_PARTITION__'))))) STAGE DEPENDENCIES: Stage-0 is a root stage @@ -871,11 +871,11 @@ STAGE PLANS: PREHOOK: query: -- both partitions will be pruned -- basicStatState: NONE colStatState: NONE -explain extended select * from loc_orc where year=2001 and year='__HIVE_DEFAULT_PARTITION__' +explain extended select * from loc_orc where year='2001' and year='__HIVE_DEFAULT_PARTITION__' PREHOOK: type: QUERY POSTHOOK: query: -- both partitions will be pruned -- basicStatState: NONE colStatState: NONE -explain extended select * from loc_orc where year=2001 and year='__HIVE_DEFAULT_PARTITION__' +explain extended select * from loc_orc where year='2001' and year='__HIVE_DEFAULT_PARTITION__' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -884,7 +884,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (and (= (TOK_TABLE_OR_COL year) 2001) (= (TOK_TABLE_OR_COL year) '__HIVE_DEFAULT_PARTITION__'))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (and (= (TOK_TABLE_OR_COL year) '2001') (= (TOK_TABLE_OR_COL year) '__HIVE_DEFAULT_PARTITION__'))))) STAGE DEPENDENCIES: Stage-0 is a root stage @@ -902,7 +902,7 @@ STAGE PLANS: Filter Operator isSamplingPred: false predicate: - expr: ((year = 2001) and (year = '__HIVE_DEFAULT_PARTITION__')) + expr: ((year = '2001') and (year = '__HIVE_DEFAULT_PARTITION__')) type: boolean Statistics: numRows: 0 dataSize: 0 basicStatsState: NONE colStatsState: NONE @@ -922,13 +922,13 @@ STAGE PLANS: ListSink PREHOOK: query: -- partition level partial column statistics -analyze table loc_orc partition(year=2001) compute statistics for columns state,locid +analyze table loc_orc partition(year='2001') compute statistics for columns state,locid PREHOOK: type: QUERY PREHOOK: Input: default@loc_orc PREHOOK: Input: default@loc_orc@year=2001 #### A masked pattern was here #### POSTHOOK: query: -- partition level partial column statistics -analyze table loc_orc partition(year=2001) compute statistics for columns state,locid +analyze table loc_orc partition(year='2001') compute statistics for columns state,locid POSTHOOK: type: QUERY POSTHOOK: Input: default@loc_orc POSTHOOK: Input: default@loc_orc@year=2001 @@ -1397,10 +1397,10 @@ STAGE PLANS: limit: -1 PREHOOK: query: -- basicStatState: COMPLETE colStatState: COMPLETE -explain extended select state,locid from loc_orc where year=2001 +explain extended select state,locid from loc_orc where year='2001' PREHOOK: type: QUERY POSTHOOK: query: -- basicStatState: COMPLETE colStatState: COMPLETE -explain extended select state,locid from loc_orc where year=2001 +explain extended select state,locid from loc_orc where year='2001' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -1409,7 +1409,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL state)) (TOK_SELEXPR (TOK_TABLE_OR_COL locid))) (TOK_WHERE (= (TOK_TABLE_OR_COL year) 2001)))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL state)) (TOK_SELEXPR (TOK_TABLE_OR_COL locid))) (TOK_WHERE (= (TOK_TABLE_OR_COL year) '2001')))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -1508,10 +1508,10 @@ STAGE PLANS: limit: -1 PREHOOK: query: -- basicStatState: COMPLETE colStatState: NONE -explain extended select state,locid from loc_orc where year!=2001 +explain extended select state,locid from loc_orc where year!='2001' PREHOOK: type: QUERY POSTHOOK: query: -- basicStatState: COMPLETE colStatState: NONE -explain extended select state,locid from loc_orc where year!=2001 +explain extended select state,locid from loc_orc where year!='2001' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -1520,7 +1520,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL state)) (TOK_SELEXPR (TOK_TABLE_OR_COL locid))) (TOK_WHERE (!= (TOK_TABLE_OR_COL year) 2001)))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL state)) (TOK_SELEXPR (TOK_TABLE_OR_COL locid))) (TOK_WHERE (!= (TOK_TABLE_OR_COL year) '2001')))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -1536,44 +1536,37 @@ STAGE PLANS: Statistics: numRows: 1 dataSize: 325 basicStatsState: COMPLETE colStatsState: NONE GatherStats: false - Filter Operator - isSamplingPred: false - predicate: - expr: (year <> 2001) - type: boolean + Select Operator + expressions: + expr: state + type: string + expr: locid + type: int + outputColumnNames: _col0, _col1 Statistics: numRows: 1 dataSize: 325 basicStatsState: COMPLETE colStatsState: NONE - Select Operator - expressions: - expr: state - type: string - expr: locid - type: int - outputColumnNames: _col0, _col1 + File Output Operator + compressed: false + GlobalTableId: 0 +#### A masked pattern was here #### + NumFilesPerFileSink: 1 Statistics: numRows: 1 dataSize: 325 basicStatsState: COMPLETE colStatsState: NONE - File Output Operator - compressed: false - GlobalTableId: 0 -#### A masked pattern was here #### - NumFilesPerFileSink: 1 - Statistics: - numRows: 1 dataSize: 325 basicStatsState: COMPLETE colStatsState: NONE #### A masked pattern was here #### - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - properties: - columns _col0,_col1 - columns.types string:int - escape.delim \ - hive.serialization.extend.nesting.levels true - serialization.format 1 - serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + columns _col0,_col1 + columns.types string:int + escape.delim \ + hive.serialization.extend.nesting.levels true + serialization.format 1 + serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false Path -> Alias: #### A masked pattern was here #### Path -> Partition: @@ -1749,11 +1742,11 @@ STAGE PLANS: PREHOOK: query: -- This is to test filter expression evaluation on partition column -- numRows: 2 dataSize: 8 basicStatState: COMPLETE colStatState: COMPLETE -explain extended select locid from loc_orc where locid>0 and year=2001 +explain extended select locid from loc_orc where locid>0 and year='2001' PREHOOK: type: QUERY POSTHOOK: query: -- This is to test filter expression evaluation on partition column -- numRows: 2 dataSize: 8 basicStatState: COMPLETE colStatState: COMPLETE -explain extended select locid from loc_orc where locid>0 and year=2001 +explain extended select locid from loc_orc where locid>0 and year='2001' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -1762,7 +1755,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL locid))) (TOK_WHERE (and (> (TOK_TABLE_OR_COL locid) 0) (= (TOK_TABLE_OR_COL year) 2001))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL locid))) (TOK_WHERE (and (> (TOK_TABLE_OR_COL locid) 0) (= (TOK_TABLE_OR_COL year) '2001'))))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -1865,9 +1858,9 @@ STAGE PLANS: Fetch Operator limit: -1 -PREHOOK: query: explain extended select locid,year from loc_orc where locid>0 and year=2001 +PREHOOK: query: explain extended select locid,year from loc_orc where locid>0 and year='2001' PREHOOK: type: QUERY -POSTHOOK: query: explain extended select locid,year from loc_orc where locid>0 and year=2001 +POSTHOOK: query: explain extended select locid,year from loc_orc where locid>0 and year='2001' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -1876,7 +1869,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL locid)) (TOK_SELEXPR (TOK_TABLE_OR_COL year))) (TOK_WHERE (and (> (TOK_TABLE_OR_COL locid) 0) (= (TOK_TABLE_OR_COL year) 2001))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL locid)) (TOK_SELEXPR (TOK_TABLE_OR_COL year))) (TOK_WHERE (and (> (TOK_TABLE_OR_COL locid) 0) (= (TOK_TABLE_OR_COL year) '2001'))))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -1981,9 +1974,9 @@ STAGE PLANS: Fetch Operator limit: -1 -PREHOOK: query: explain extended select * from (select locid,year from loc_orc) test where locid>0 and year=2001 +PREHOOK: query: explain extended select * from (select locid,year from loc_orc) test where locid>0 and year='2001' PREHOOK: type: QUERY -POSTHOOK: query: explain extended select * from (select locid,year from loc_orc) test where locid>0 and year=2001 +POSTHOOK: query: explain extended select * from (select locid,year from loc_orc) test where locid>0 and year='2001' POSTHOOK: type: QUERY POSTHOOK: Lineage: loc_orc PARTITION(year=2001).locid SIMPLE [(loc_staging)loc_staging.FieldSchema(name:locid, type:int, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=2001).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] @@ -1992,7 +1985,7 @@ POSTHOOK: Lineage: loc_orc PARTITION(yea POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).state SIMPLE [(loc_staging)loc_staging.FieldSchema(name:state, type:string, comment:null), ] POSTHOOK: Lineage: loc_orc PARTITION(year=__HIVE_DEFAULT_PARTITION__).zip SIMPLE [(loc_staging)loc_staging.FieldSchema(name:zip, type:bigint, comment:null), ] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL locid)) (TOK_SELEXPR (TOK_TABLE_OR_COL year))))) test)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (and (> (TOK_TABLE_OR_COL locid) 0) (= (TOK_TABLE_OR_COL year) 2001))))) + (TOK_QUERY (TOK_FROM (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME loc_orc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL locid)) (TOK_SELEXPR (TOK_TABLE_OR_COL year))))) test)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (and (> (TOK_TABLE_OR_COL locid) 0) (= (TOK_TABLE_OR_COL year) '2001'))))) STAGE DEPENDENCIES: Stage-1 is a root stage Modified: hive/trunk/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out?rev=1552449&r1=1552448&r2=1552449&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out Thu Dec 19 22:49:01 2013 @@ -1,43 +1,43 @@ -PREHOOK: query: create table dynamic_part_table(intcol int) partitioned by (partcol1 int, partcol2 int) +PREHOOK: query: create table dynamic_part_table(intcol string) partitioned by (partcol1 string, partcol2 string) PREHOOK: type: CREATETABLE -POSTHOOK: query: create table dynamic_part_table(intcol int) partitioned by (partcol1 int, partcol2 int) +POSTHOOK: query: create table dynamic_part_table(intcol string) partitioned by (partcol1 string, partcol2 string) POSTHOOK: type: CREATETABLE POSTHOOK: Output: default@dynamic_part_table -PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, 1, 1 from src where key=150 +PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', '1', '1' from src where key=150 PREHOOK: type: QUERY PREHOOK: Input: default@src PREHOOK: Output: default@dynamic_part_table -POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, 1, 1 from src where key=150 +POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', '1', '1' from src where key=150 POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Output: default@dynamic_part_table@partcol1=1/partcol2=1 POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=1).intcol SIMPLE [] -PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, NULL, 1 from src where key=150 +PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', NULL, '1' from src where key=150 PREHOOK: type: QUERY PREHOOK: Input: default@src PREHOOK: Output: default@dynamic_part_table -POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, NULL, 1 from src where key=150 +POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', NULL, '1' from src where key=150 POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Output: default@dynamic_part_table@partcol1=__HIVE_DEFAULT_PARTITION__/partcol2=1 POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=1).intcol SIMPLE [] -PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, 1, NULL from src where key=150 +PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', '1', NULL from src where key=150 PREHOOK: type: QUERY PREHOOK: Input: default@src PREHOOK: Output: default@dynamic_part_table -POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, 1, NULL from src where key=150 +POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', '1', NULL from src where key=150 POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Output: default@dynamic_part_table@partcol1=1/partcol2=__HIVE_DEFAULT_PARTITION__ POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=1).intcol SIMPLE [] -PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, NULL, NULL from src where key=150 +PREHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', NULL, NULL from src where key=150 PREHOOK: type: QUERY PREHOOK: Input: default@src PREHOOK: Output: default@dynamic_part_table -POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select 1, NULL, NULL from src where key=150 +POSTHOOK: query: insert into table dynamic_part_table partition(partcol1, partcol2) select '1', NULL, NULL from src where key=150 POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Output: default@dynamic_part_table@partcol1=__HIVE_DEFAULT_PARTITION__/partcol2=__HIVE_DEFAULT_PARTITION__ @@ -45,16 +45,16 @@ POSTHOOK: Lineage: dynamic_part_table PA POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] -PREHOOK: query: explain extended select intcol from dynamic_part_table where partcol1=1 and partcol2=1 +PREHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1' PREHOOK: type: QUERY -POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1=1 and partcol2=1 +POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1' POSTHOOK: type: QUERY POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dynamic_part_table))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL intcol))) (TOK_WHERE (and (= (TOK_TABLE_OR_COL partcol1) 1) (= (TOK_TABLE_OR_COL partcol2) 1))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dynamic_part_table))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL intcol))) (TOK_WHERE (and (= (TOK_TABLE_OR_COL partcol1) '1') (= (TOK_TABLE_OR_COL partcol2) '1'))))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -73,7 +73,7 @@ STAGE PLANS: Select Operator expressions: expr: intcol - type: int + type: string outputColumnNames: _col0 Statistics: numRows: 1 dataSize: 1 basicStatsState: COMPLETE colStatsState: NONE @@ -90,7 +90,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat properties: columns _col0 - columns.types int + columns.types string escape.delim \ hive.serialization.extend.nesting.levels true serialization.format 1 @@ -114,14 +114,14 @@ STAGE PLANS: COLUMN_STATS_ACCURATE true bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table numFiles 1 numRows 1 partition_columns partcol1/partcol2 rawDataSize 1 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe totalSize 2 @@ -133,11 +133,11 @@ STAGE PLANS: properties: bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table partition_columns partcol1/partcol2 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe #### A masked pattern was here #### @@ -151,16 +151,16 @@ STAGE PLANS: Fetch Operator limit: -1 -PREHOOK: query: explain extended select intcol from dynamic_part_table where partcol1=1 and partcol2=1 +PREHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1' PREHOOK: type: QUERY -POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1=1 and partcol2=1 +POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1' POSTHOOK: type: QUERY POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dynamic_part_table))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL intcol))) (TOK_WHERE (and (= (TOK_TABLE_OR_COL partcol1) 1) (= (TOK_TABLE_OR_COL partcol2) 1))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dynamic_part_table))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL intcol))) (TOK_WHERE (and (= (TOK_TABLE_OR_COL partcol1) '1') (= (TOK_TABLE_OR_COL partcol2) '1'))))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -179,7 +179,7 @@ STAGE PLANS: Select Operator expressions: expr: intcol - type: int + type: string outputColumnNames: _col0 Statistics: numRows: 1 dataSize: 1 basicStatsState: COMPLETE colStatsState: NONE @@ -196,7 +196,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat properties: columns _col0 - columns.types int + columns.types string escape.delim \ hive.serialization.extend.nesting.levels true serialization.format 1 @@ -220,14 +220,14 @@ STAGE PLANS: COLUMN_STATS_ACCURATE true bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table numFiles 1 numRows 1 partition_columns partcol1/partcol2 rawDataSize 1 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe totalSize 2 @@ -239,11 +239,11 @@ STAGE PLANS: properties: bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table partition_columns partcol1/partcol2 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe #### A masked pattern was here #### @@ -257,16 +257,16 @@ STAGE PLANS: Fetch Operator limit: -1 -PREHOOK: query: explain extended select intcol from dynamic_part_table where (partcol1=1 and partcol2=1)or (partcol1=1 and partcol2='__HIVE_DEFAULT_PARTITION__') +PREHOOK: query: explain extended select intcol from dynamic_part_table where (partcol1='1' and partcol2='1')or (partcol1='1' and partcol2='__HIVE_DEFAULT_PARTITION__') 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: 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 POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=1,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=1).intcol SIMPLE [] POSTHOOK: Lineage: dynamic_part_table PARTITION(partcol1=__HIVE_DEFAULT_PARTITION__,partcol2=__HIVE_DEFAULT_PARTITION__).intcol SIMPLE [] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dynamic_part_table))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL intcol))) (TOK_WHERE (or (and (= (TOK_TABLE_OR_COL partcol1) 1) (= (TOK_TABLE_OR_COL partcol2) 1)) (and (= (TOK_TABLE_OR_COL partcol1) 1) (= (TOK_TABLE_OR_COL partcol2) '__HIVE_DEFAULT_PARTITION__')))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dynamic_part_table))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL intcol))) (TOK_WHERE (or (and (= (TOK_TABLE_OR_COL partcol1) '1') (= (TOK_TABLE_OR_COL partcol2) '1')) (and (= (TOK_TABLE_OR_COL partcol1) '1') (= (TOK_TABLE_OR_COL partcol2) '__HIVE_DEFAULT_PARTITION__')))))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -285,7 +285,7 @@ STAGE PLANS: Select Operator expressions: expr: intcol - type: int + type: string outputColumnNames: _col0 Statistics: numRows: 2 dataSize: 2 basicStatsState: COMPLETE colStatsState: NONE @@ -302,7 +302,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat properties: columns _col0 - columns.types int + columns.types string escape.delim \ hive.serialization.extend.nesting.levels true serialization.format 1 @@ -326,14 +326,14 @@ STAGE PLANS: COLUMN_STATS_ACCURATE true bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table numFiles 1 numRows 1 partition_columns partcol1/partcol2 rawDataSize 1 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe totalSize 2 @@ -345,11 +345,11 @@ STAGE PLANS: properties: bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table partition_columns partcol1/partcol2 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe #### A masked pattern was here #### @@ -368,14 +368,14 @@ STAGE PLANS: COLUMN_STATS_ACCURATE true bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table numFiles 1 numRows 1 partition_columns partcol1/partcol2 rawDataSize 1 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe totalSize 2 @@ -387,11 +387,11 @@ STAGE PLANS: properties: bucket_count -1 columns intcol - columns.types int + columns.types string #### A masked pattern was here #### name default.dynamic_part_table partition_columns partcol1/partcol2 - serialization.ddl struct dynamic_part_table { i32 intcol} + serialization.ddl struct dynamic_part_table { string intcol} serialization.format 1 serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe #### A masked pattern was here ####