Index: data/files/N1.txt =================================================================== --- data/files/N1.txt (revision 0) +++ data/files/N1.txt (revision 0) @@ -0,0 +1,5 @@ +12813230218309233410.12 +21819083021830923317.5 +3-581908302183092331-5.6 +43819083021830923311819083021830923382903800132184092342 +53122 Index: ql/src/test/results/clientpositive/type_matching.q.out =================================================================== --- ql/src/test/results/clientpositive/type_matching.q.out (revision 0) +++ ql/src/test/results/clientpositive/type_matching.q.out (revision 0) @@ -0,0 +1,1125 @@ +PREHOOK: query: CREATE TABLE N1(ikey INT, lkey BIGINT, dkey DOUBLE) STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE N1(ikey INT, lkey BIGINT, dkey DOUBLE) STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@N1 +PREHOOK: query: LOAD DATA LOCAL INPATH '../data/files/N1.txt' INTO TABLE N1 +PREHOOK: type: LOAD +PREHOOK: Output: default@n1 +POSTHOOK: query: LOAD DATA LOCAL INPATH '../data/files/N1.txt' INTO TABLE N1 +POSTHOOK: type: LOAD +POSTHOOK: Output: default@n1 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey >= 1819083021830923382903800132184092342 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey >= 1819083021830923382903800132184092342 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (>= (TOK_TABLE_OR_COL dkey) 1819083021830923382903800132184092342)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey >= 1.8190830218309233E36) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey >= 1819083021830923382903800132184092342 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-30_825_5389947934379981322/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey >= 1819083021830923382903800132184092342 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-30_825_5389947934379981322/-mr-10000 +4 381908302183092331 1.8190830218309233E36 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 1819083021830923382903800132184092342 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 1819083021830923382903800132184092342 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL dkey) 1819083021830923382903800132184092342)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey = 1.8190830218309233E36) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey = 1819083021830923382903800132184092342 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-33_839_2215786443467575611/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey = 1819083021830923382903800132184092342 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-33_839_2215786443467575611/-mr-10000 +4 381908302183092331 1.8190830218309233E36 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 381908302183092331 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 381908302183092331 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL dkey) 381908302183092331)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey = 3.8190830218309235E17) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey = 381908302183092331 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-36_869_4948269821239727791/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey = 381908302183092331 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-36_869_4948269821239727791/-mr-10000 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 381908302183092331 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 381908302183092331 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL dkey) 381908302183092331)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey = 3.8190830218309235E17) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey = 381908302183092331 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-39_872_3444810302480402/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey = 381908302183092331 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-39_872_3444810302480402/-mr-10000 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 22 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey = 22 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL dkey) 22)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey = 22.0) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey = 22 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-42_834_6363663057600591892/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey = 22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-42_834_6363663057600591892/-mr-10000 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey < 22 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey < 22 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (< (TOK_TABLE_OR_COL dkey) 22)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey < 22.0) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey < 22 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-45_835_7231535927144024396/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey < 22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-45_835_7231535927144024396/-mr-10000 +1 281323021830923341 0.12 +2 181908302183092331 7.5 +3 -581908302183092331 -5.6 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey > 22 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey > 22 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (> (TOK_TABLE_OR_COL dkey) 22)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey > 22.0) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey > 22 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-48_995_6090397620411627016/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey > 22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-48_995_6090397620411627016/-mr-10000 +4 381908302183092331 1.8190830218309233E36 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey >= 22 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE dkey >= 22 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (>= (TOK_TABLE_OR_COL dkey) 22)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (dkey >= 22.0) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE dkey >= 22 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-52_012_2592603464086985968/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE dkey >= 22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-52_012_2592603464086985968/-mr-10000 +4 381908302183092331 1.8190830218309233E36 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey = 31 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey = 31 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL lkey) 31)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (lkey = 31) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE lkey = 31 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-55_038_3253661000809271983/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE lkey = 31 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-55_038_3253661000809271983/-mr-10000 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey < 32 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey < 32 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (< (TOK_TABLE_OR_COL lkey) 32)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (lkey < 32) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE lkey < 32 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-58_095_7614886615974537849/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE lkey < 32 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-20-58_095_7614886615974537849/-mr-10000 +3 -581908302183092331 -5.6 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey > 32 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey > 32 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (> (TOK_TABLE_OR_COL lkey) 32)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (lkey > 32) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE lkey > 32 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-01_066_7078242937478227550/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE lkey > 32 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-01_066_7078242937478227550/-mr-10000 +1 281323021830923341 0.12 +2 181908302183092331 7.5 +4 381908302183092331 1.8190830218309233E36 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey = -581908302183092331 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey = -581908302183092331 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL lkey) (- 581908302183092331))))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (lkey = (- 581908302183092331)) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE lkey = -581908302183092331 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-04_380_280632419421520290/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE lkey = -581908302183092331 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-04_380_280632419421520290/-mr-10000 +3 -581908302183092331 -5.6 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey > -581908302183092331 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey > -581908302183092331 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (> (TOK_TABLE_OR_COL lkey) (- 581908302183092331))))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (lkey > (- 581908302183092331)) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE lkey > -581908302183092331 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-07_556_4632702545253529455/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE lkey > -581908302183092331 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-07_556_4632702545253529455/-mr-10000 +1 281323021830923341 0.12 +2 181908302183092331 7.5 +4 381908302183092331 1.8190830218309233E36 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey >= -5.6 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE lkey >= -5.6 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (>= (TOK_TABLE_OR_COL lkey) (- 5.6))))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (lkey >= (- 5.6)) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE lkey >= -5.6 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-10_604_7609360395472663261/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE lkey >= -5.6 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-10_604_7609360395472663261/-mr-10000 +1 281323021830923341 0.12 +2 181908302183092331 7.5 +4 381908302183092331 1.8190830218309233E36 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey = 1.1 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey = 1.1 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL ikey) 1.1)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: false + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE ikey = 1.1 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-13_621_3241835703950790869/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE ikey = 1.1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-13_621_3241835703950790869/-mr-10000 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey > 1.1 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey > 1.1 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (> (TOK_TABLE_OR_COL ikey) 1.1)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (ikey > 1.1) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE ikey > 1.1 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-16_634_7229094423725577711/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE ikey > 1.1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-16_634_7229094423725577711/-mr-10000 +2 181908302183092331 7.5 +3 -581908302183092331 -5.6 +4 381908302183092331 1.8190830218309233E36 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey = 3 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey = 3 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL ikey) 3)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (ikey = 3) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE ikey = 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-19_647_2810421733242412662/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE ikey = 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-19_647_2810421733242412662/-mr-10000 +3 -581908302183092331 -5.6 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey != 3 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey != 3 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (!= (TOK_TABLE_OR_COL ikey) 3)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (ikey <> 3) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE ikey != 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-22_683_3231736958505170085/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE ikey != 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-22_683_3231736958505170085/-mr-10000 +1 281323021830923341 0.12 +2 181908302183092331 7.5 +4 381908302183092331 1.8190830218309233E36 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey < 181908302183092331 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey < 181908302183092331 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (< (TOK_TABLE_OR_COL ikey) 181908302183092331)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (ikey < 181908302183092331) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE ikey < 181908302183092331 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-25_648_1255486241711984216/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE ikey < 181908302183092331 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-25_648_1255486241711984216/-mr-10000 +1 281323021830923341 0.12 +2 181908302183092331 7.5 +3 -581908302183092331 -5.6 +4 381908302183092331 1.8190830218309233E36 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey <= 181908302183092331 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey <= 181908302183092331 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (<= (TOK_TABLE_OR_COL ikey) 181908302183092331)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: (ikey <= 181908302183092331) + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE ikey <= 181908302183092331 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-28_660_2064849174898403234/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE ikey <= 181908302183092331 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-28_660_2064849174898403234/-mr-10000 +1 281323021830923341 0.12 +2 181908302183092331 7.5 +3 -581908302183092331 -5.6 +4 381908302183092331 1.8190830218309233E36 +5 31 22.0 +PREHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey = 181908302183092331 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM N1 WHERE ikey = 181908302183092331 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME N1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (= (TOK_TABLE_OR_COL ikey) 181908302183092331)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + n1 + TableScan + alias: n1 + Filter Operator + predicate: + expr: false + type: boolean + Select Operator + expressions: + expr: ikey + type: int + expr: lkey + type: bigint + expr: dkey + type: double + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM N1 WHERE ikey = 181908302183092331 +PREHOOK: type: QUERY +PREHOOK: Input: default@n1 +PREHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-31_637_4803339416864919007/-mr-10000 +POSTHOOK: query: SELECT * FROM N1 WHERE ikey = 181908302183092331 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@n1 +POSTHOOK: Output: file:/tmp/joeb/hive_2011-07-21_13-21-31_637_4803339416864919007/-mr-10000 Index: ql/src/test/queries/clientpositive/type_matching.q =================================================================== --- ql/src/test/queries/clientpositive/type_matching.q (revision 0) +++ ql/src/test/queries/clientpositive/type_matching.q (revision 0) @@ -0,0 +1,73 @@ +CREATE TABLE N1(ikey INT, lkey BIGINT, dkey DOUBLE) STORED AS TEXTFILE; +LOAD DATA LOCAL INPATH '../data/files/N1.txt' INTO TABLE N1; + + +EXPLAIN SELECT * FROM N1 WHERE dkey >= 1819083021830923382903800132184092342; +SELECT * FROM N1 WHERE dkey >= 1819083021830923382903800132184092342; + +EXPLAIN SELECT * FROM N1 WHERE dkey = 1819083021830923382903800132184092342; +SELECT * FROM N1 WHERE dkey = 1819083021830923382903800132184092342; + +EXPLAIN SELECT * FROM N1 WHERE dkey = 381908302183092331; +SELECT * FROM N1 WHERE dkey = 381908302183092331; + +EXPLAIN SELECT * FROM N1 WHERE dkey = 381908302183092331; +SELECT * FROM N1 WHERE dkey = 381908302183092331; + +EXPLAIN SELECT * FROM N1 WHERE dkey = 22; +SELECT * FROM N1 WHERE dkey = 22; + +EXPLAIN SELECT * FROM N1 WHERE dkey < 22; +SELECT * FROM N1 WHERE dkey < 22; + +EXPLAIN SELECT * FROM N1 WHERE dkey > 22; +SELECT * FROM N1 WHERE dkey > 22; + +EXPLAIN SELECT * FROM N1 WHERE dkey >= 22; +SELECT * FROM N1 WHERE dkey >= 22; + + +EXPLAIN SELECT * FROM N1 WHERE lkey = 31; +SELECT * FROM N1 WHERE lkey = 31; + +EXPLAIN SELECT * FROM N1 WHERE lkey < 32; +SELECT * FROM N1 WHERE lkey < 32; + +EXPLAIN SELECT * FROM N1 WHERE lkey > 32; +SELECT * FROM N1 WHERE lkey > 32; + +EXPLAIN SELECT * FROM N1 WHERE lkey = -581908302183092331; +SELECT * FROM N1 WHERE lkey = -581908302183092331; + +EXPLAIN SELECT * FROM N1 WHERE lkey > -581908302183092331; +SELECT * FROM N1 WHERE lkey > -581908302183092331; + +EXPLAIN SELECT * FROM N1 WHERE lkey >= -5.6; +SELECT * FROM N1 WHERE lkey >= -5.6; + + +EXPLAIN SELECT * FROM N1 WHERE ikey = 1.1; +SELECT * FROM N1 WHERE ikey = 1.1; + +EXPLAIN SELECT * FROM N1 WHERE ikey > 1.1; +SELECT * FROM N1 WHERE ikey > 1.1; + +EXPLAIN SELECT * FROM N1 WHERE ikey = 3; +SELECT * FROM N1 WHERE ikey = 3; + +EXPLAIN SELECT * FROM N1 WHERE ikey != 3; +SELECT * FROM N1 WHERE ikey != 3; + +EXPLAIN SELECT * FROM N1 WHERE ikey < 181908302183092331; +SELECT * FROM N1 WHERE ikey < 181908302183092331; + +EXPLAIN SELECT * FROM N1 WHERE ikey <= 181908302183092331; +SELECT * FROM N1 WHERE ikey <= 181908302183092331; + +EXPLAIN SELECT * FROM N1 WHERE ikey = 181908302183092331; +SELECT * FROM N1 WHERE ikey = 181908302183092331; + + + + + Index: ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java (revision 1149401) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java (working copy) @@ -50,6 +50,8 @@ import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc; import org.apache.hadoop.hive.ql.plan.ExprNodeNullDesc; import org.apache.hadoop.hive.ql.udf.generic.GenericUDF; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBaseCompare; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPEqual; import org.apache.hadoop.hive.serde.Constants; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category; @@ -647,6 +649,47 @@ } } + // If the function is a comparison between a column and a constant, + // this code (a) prevents unneeded type conversions by demoting the type of the + // constant and (b) replaces the entire operation with a boolean FALSE if the comparison + // could never be true (e.g., if the column is a int and the constant is a double.) + // (Note that NumExprProcessor.process() promotes numbers to the most specific type that it can, + // so if a Double constant could have been an Int, NumExprProcessor would have returned an Int.) + // col > Double Bigint Int + // Double noop FALSE FALSE + // Bigint DBL noop FALSE + // Int DBL LONG noop + // ^const^ + + if (fi.getGenericUDF() instanceof GenericUDFBaseCompare) { + if (children.size() == 2 && + ((children.get(0) instanceof ExprNodeConstantDesc + && children.get(1) instanceof ExprNodeColumnDesc) || + (children.get(0) instanceof ExprNodeColumnDesc + && children.get(1) instanceof ExprNodeConstantDesc))) { + int colIdx = children.get(0) instanceof ExprNodeColumnDesc ? 0 : 1; + int constIdx = colIdx == 0 ? 1 : 0; + String colType = children.get(colIdx).getTypeInfo().getTypeName(); + String constType = children.get(constIdx).getTypeInfo().getTypeName(); + String stval = ((ExprNodeConstantDesc) children.get(constIdx)).getValue().toString(); + if (colType.equalsIgnoreCase("double") && + (constType.equalsIgnoreCase("bigint") || constType.equalsIgnoreCase("int"))) { + children.set(constIdx, new ExprNodeConstantDesc(Double.valueOf(stval))); + } else if (colType.equalsIgnoreCase("bigint")) { + if (constType.equalsIgnoreCase("int")) { + children.set(constIdx, new ExprNodeConstantDesc(Long.valueOf(stval))); + } else if (constType.equalsIgnoreCase("double") + && fi.getGenericUDF() instanceof GenericUDFOPEqual) { + return new ExprNodeConstantDesc(false); + } + } else if (colType.equalsIgnoreCase("int") && + (constType.equalsIgnoreCase("bigint") || constType.equalsIgnoreCase("double")) + && fi.getGenericUDF() instanceof GenericUDFOPEqual) { + return new ExprNodeConstantDesc(false); + } + } + } + desc = ExprNodeGenericFuncDesc.newInstance(fi.getGenericUDF(), children); } // UDFOPPositive is a no-op.