Index: ql/src/test/results/clientpositive/select_unquote_not.q.out =================================================================== --- ql/src/test/results/clientpositive/select_unquote_not.q.out (revision 0) +++ ql/src/test/results/clientpositive/select_unquote_not.q.out (working copy) @@ -0,0 +1,120 @@ +PREHOOK: query: CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@npe_test +PREHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@npe_test@ds=2012-12-11 +POSTHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@npe_test@ds=2012-12-11 +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@npe_test@ds=2012-12-12 +POSTHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@npe_test@ds=2012-12-12 +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: SELECT count(*) FROM npe_test +PREHOOK: type: QUERY +PREHOOK: Input: default@npe_test@ds=2012-12-11 +PREHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: query: SELECT count(*) FROM npe_test +POSTHOOK: type: QUERY +POSTHOOK: Input: default@npe_test@ds=2012-12-11 +POSTHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +498 +PREHOOK: query: EXPLAIN SELECT * FROM npe_test WHERE NOT ds < 2012-11-31 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM npe_test WHERE NOT ds < 2012-11-31 +POSTHOOK: type: QUERY +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME npe_test))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (NOT (< (TOK_TABLE_OR_COL ds) (- (- 2012 11) 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: + npe_test + TableScan + alias: npe_test + Filter Operator + predicate: + expr: (not (ds < ((2012 - 11) - 31))) + type: boolean + Select Operator + expressions: + expr: key + type: string + expr: value + type: string + expr: ds + type: string + 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 count(*) FROM npe_test WHERE NOT ds < 2012-11-31 +PREHOOK: type: QUERY +PREHOOK: Input: default@npe_test@ds=2012-12-11 +PREHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: query: SELECT count(*) FROM npe_test WHERE NOT ds < 2012-11-31 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@npe_test@ds=2012-12-11 +POSTHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +0 +PREHOOK: query: DROP TABLE npe_test +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@npe_test +PREHOOK: Output: default@npe_test +POSTHOOK: query: DROP TABLE npe_test +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@npe_test +POSTHOOK: Output: default@npe_test +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] Index: ql/src/test/results/clientpositive/select_unquote_and.q.out =================================================================== --- ql/src/test/results/clientpositive/select_unquote_and.q.out (revision 0) +++ ql/src/test/results/clientpositive/select_unquote_and.q.out (working copy) @@ -0,0 +1,120 @@ +PREHOOK: query: CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@npe_test +PREHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@npe_test@ds=2012-12-11 +POSTHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@npe_test@ds=2012-12-11 +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@npe_test@ds=2012-12-12 +POSTHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@npe_test@ds=2012-12-12 +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: SELECT count(*) FROM npe_test +PREHOOK: type: QUERY +PREHOOK: Input: default@npe_test@ds=2012-12-11 +PREHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: query: SELECT count(*) FROM npe_test +POSTHOOK: type: QUERY +POSTHOOK: Input: default@npe_test@ds=2012-12-11 +POSTHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +498 +PREHOOK: query: EXPLAIN SELECT * FROM npe_test WHERE ds > 2012-11-31 AND ds < 2012-12-15 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM npe_test WHERE ds > 2012-11-31 AND ds < 2012-12-15 +POSTHOOK: type: QUERY +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME npe_test))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (AND (> (TOK_TABLE_OR_COL ds) (- (- 2012 11) 31)) (< (TOK_TABLE_OR_COL ds) (- (- 2012 12) 15)))))) + +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: + npe_test + TableScan + alias: npe_test + Filter Operator + predicate: + expr: ((ds > ((2012 - 11) - 31)) and (ds < ((2012 - 12) - 15))) + type: boolean + Select Operator + expressions: + expr: key + type: string + expr: value + type: string + expr: ds + type: string + 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 count(*) FROM npe_test WHERE ds > 2012-11-31 AND ds < 2012-12-15 +PREHOOK: type: QUERY +PREHOOK: Input: default@npe_test@ds=2012-12-11 +PREHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: query: SELECT count(*) FROM npe_test WHERE ds > 2012-11-31 AND ds < 2012-12-15 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@npe_test@ds=2012-12-11 +POSTHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +0 +PREHOOK: query: DROP TABLE npe_test +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@npe_test +PREHOOK: Output: default@npe_test +POSTHOOK: query: DROP TABLE npe_test +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@npe_test +POSTHOOK: Output: default@npe_test +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] Index: ql/src/test/results/clientpositive/select_unquote_or.q.out =================================================================== --- ql/src/test/results/clientpositive/select_unquote_or.q.out (revision 0) +++ ql/src/test/results/clientpositive/select_unquote_or.q.out (working copy) @@ -0,0 +1,120 @@ +PREHOOK: query: CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@npe_test +PREHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@npe_test@ds=2012-12-11 +POSTHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@npe_test@ds=2012-12-11 +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@npe_test@ds=2012-12-12 +POSTHOOK: query: INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@npe_test@ds=2012-12-12 +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: SELECT count(*) FROM npe_test +PREHOOK: type: QUERY +PREHOOK: Input: default@npe_test@ds=2012-12-11 +PREHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: query: SELECT count(*) FROM npe_test +POSTHOOK: type: QUERY +POSTHOOK: Input: default@npe_test@ds=2012-12-11 +POSTHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +498 +PREHOOK: query: EXPLAIN SELECT * FROM npe_test WHERE ds > 2012-11-31 OR ds < 2012-12-15 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT * FROM npe_test WHERE ds > 2012-11-31 OR ds < 2012-12-15 +POSTHOOK: type: QUERY +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME npe_test))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (OR (> (TOK_TABLE_OR_COL ds) (- (- 2012 11) 31)) (< (TOK_TABLE_OR_COL ds) (- (- 2012 12) 15)))))) + +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: + npe_test + TableScan + alias: npe_test + Filter Operator + predicate: + expr: ((ds > ((2012 - 11) - 31)) or (ds < ((2012 - 12) - 15))) + type: boolean + Select Operator + expressions: + expr: key + type: string + expr: value + type: string + expr: ds + type: string + 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 count(*) FROM npe_test WHERE ds > 2012-11-31 OR ds < 2012-12-15 +PREHOOK: type: QUERY +PREHOOK: Input: default@npe_test@ds=2012-12-11 +PREHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: query: SELECT count(*) FROM npe_test WHERE ds > 2012-11-31 OR ds < 2012-12-15 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@npe_test@ds=2012-12-11 +POSTHOOK: Input: default@npe_test@ds=2012-12-12 +#### A masked pattern was here #### +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +0 +PREHOOK: query: DROP TABLE npe_test +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@npe_test +PREHOOK: Output: default@npe_test +POSTHOOK: query: DROP TABLE npe_test +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@npe_test +POSTHOOK: Output: default@npe_test +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-11).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: npe_test PARTITION(ds=2012-12-12).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] Index: ql/src/test/queries/clientpositive/select_unquote_or.q =================================================================== --- ql/src/test/queries/clientpositive/select_unquote_or.q (revision 0) +++ ql/src/test/queries/clientpositive/select_unquote_or.q (working copy) @@ -0,0 +1,15 @@ +CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING); + +INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200'; + +INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200'; + +SELECT count(*) FROM npe_test; + +EXPLAIN SELECT * FROM npe_test WHERE ds > 2012-11-31 OR ds < 2012-12-15; + +SELECT count(*) FROM npe_test WHERE ds > 2012-11-31 OR ds < 2012-12-15; + +DROP TABLE npe_test; Index: ql/src/test/queries/clientpositive/select_unquote_not.q =================================================================== --- ql/src/test/queries/clientpositive/select_unquote_not.q (revision 0) +++ ql/src/test/queries/clientpositive/select_unquote_not.q (working copy) @@ -0,0 +1,15 @@ +CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING); + +INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200'; + +INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200'; + +SELECT count(*) FROM npe_test; + +EXPLAIN SELECT * FROM npe_test WHERE NOT ds < 2012-11-31; + +SELECT count(*) FROM npe_test WHERE NOT ds < 2012-11-31; + +DROP TABLE npe_test; Index: ql/src/test/queries/clientpositive/select_unquote_and.q =================================================================== --- ql/src/test/queries/clientpositive/select_unquote_and.q (revision 0) +++ ql/src/test/queries/clientpositive/select_unquote_and.q (working copy) @@ -0,0 +1,15 @@ +CREATE TABLE npe_test (key STRING, value STRING) PARTITIONED BY (ds STRING); + +INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-11') +SELECT src.key, src.value FROM src WHERE key < '200'; + +INSERT OVERWRITE TABLE npe_test PARTITION(ds='2012-12-12') +SELECT src.key, src.value FROM src WHERE key > '200'; + +SELECT count(*) FROM npe_test; + +EXPLAIN SELECT * FROM npe_test WHERE ds > 2012-11-31 AND ds < 2012-12-15; + +SELECT count(*) FROM npe_test WHERE ds > 2012-11-31 AND ds < 2012-12-15; + +DROP TABLE npe_test; Index: ql/src/java/org/apache/hadoop/hive/ql/optimizer/pcr/PcrExprProcFactory.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/pcr/PcrExprProcFactory.java (revision 1423271) +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/pcr/PcrExprProcFactory.java (working copy) @@ -125,7 +125,9 @@ } static Boolean opAnd(Boolean op1, Boolean op2) { - if (op1.equals(Boolean.FALSE) || op2.equals(Boolean.FALSE)) { + // When people forget to quote a string, op1/op2 is null. + // For example, select * from some_table where ds > 2012-12-1 and ds < 2012-12-2 . + if (op1 != null && op1.equals(Boolean.FALSE) || op2 != null && op2.equals(Boolean.FALSE)) { return Boolean.FALSE; } if (op1 == null || op2 == null) { @@ -135,7 +137,9 @@ } static Boolean opOr(Boolean op1, Boolean op2) { - if (op1.equals(Boolean.TRUE) || op2.equals(Boolean.TRUE)) { + // When people forget to quote a string, op1/op2 is null. + // For example, select * from some_table where ds > 2012-12-1 or ds < 2012-12-2 . + if (op1 != null && op1.equals(Boolean.TRUE) || op2 != null && op2.equals(Boolean.TRUE)) { return Boolean.TRUE; } if (op1 == null || op2 == null) { @@ -145,12 +149,16 @@ } static Boolean opNot(Boolean op) { - if (op.equals(Boolean.TRUE)) { - return Boolean.FALSE; + // When people forget to quote a string, op1/op2 is null. + // For example, select * from some_table where not ds > 2012-12-1 . + if (op != null) { + if (op.equals(Boolean.TRUE)) { + return Boolean.FALSE; + } + if (op.equals(Boolean.FALSE)) { + return Boolean.TRUE; + } } - if (op.equals(Boolean.FALSE)) { - return Boolean.TRUE; - } return null; }