This is an automated email from the ASF dual-hosted git repository. sankarh pushed a commit to branch branch-3.1 in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/branch-3.1 by this push: new bc834d3 HIVE-21540: Query with join condition having date literal throws SemanticException (Sankar Hariappan, reviewed by Zoltan Haindrich) bc834d3 is described below commit bc834d30c9cba794893ef2aaea007ec931184d51 Author: Sankar Hariappan <sank...@apache.org> AuthorDate: Mon Apr 1 15:33:19 2019 +0530 HIVE-21540: Query with join condition having date literal throws SemanticException (Sankar Hariappan, reviewed by Zoltan Haindrich) Signed-off-by: Sankar Hariappan <sank...@apache.org> --- .../hadoop/hive/ql/parse/SemanticAnalyzer.java | 1 + ql/src/test/queries/clientpositive/date_5.q | 15 ++++++ ql/src/test/results/clientpositive/date_5.q.out | 58 ++++++++++++++++++++++ 3 files changed, 74 insertions(+) diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 356fe8b..9d7d793 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -2731,6 +2731,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { case HiveParser.TOK_CHARSETLITERAL: case HiveParser.KW_TRUE: case HiveParser.KW_FALSE: + case HiveParser.TOK_DATELITERAL: break; case HiveParser.TOK_FUNCTION: diff --git a/ql/src/test/queries/clientpositive/date_5.q b/ql/src/test/queries/clientpositive/date_5.q new file mode 100644 index 0000000..55fb130 --- /dev/null +++ b/ql/src/test/queries/clientpositive/date_5.q @@ -0,0 +1,15 @@ +drop table if exists date_1; +drop table if exists date_2; + +create table date_1 (key int, dd date); +create table date_2 (key int, dd date); + +-- between clause with date literal in join condition +select d1.key, d2.dd + from (select key, dd as start_dd, current_date as end_dd from date_1) d1 + join date_2 as d2 + on d1.key = d2.key + where d2.dd between start_dd and end_dd; + +drop table date_1; +drop table date_2; \ No newline at end of file diff --git a/ql/src/test/results/clientpositive/date_5.q.out b/ql/src/test/results/clientpositive/date_5.q.out new file mode 100644 index 0000000..3ada616 --- /dev/null +++ b/ql/src/test/results/clientpositive/date_5.q.out @@ -0,0 +1,58 @@ +PREHOOK: query: drop table if exists date_1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists date_1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists date_2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists date_2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table date_1 (key int, dd date) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@date_1 +POSTHOOK: query: create table date_1 (key int, dd date) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@date_1 +PREHOOK: query: create table date_2 (key int, dd date) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@date_2 +POSTHOOK: query: create table date_2 (key int, dd date) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@date_2 +PREHOOK: query: select d1.key, d2.dd + from (select key, dd as start_dd, current_date as end_dd from date_1) d1 + join date_2 as d2 + on d1.key = d2.key + where d2.dd between start_dd and end_dd +PREHOOK: type: QUERY +PREHOOK: Input: default@date_1 +PREHOOK: Input: default@date_2 +#### A masked pattern was here #### +POSTHOOK: query: select d1.key, d2.dd + from (select key, dd as start_dd, current_date as end_dd from date_1) d1 + join date_2 as d2 + on d1.key = d2.key + where d2.dd between start_dd and end_dd +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_1 +POSTHOOK: Input: default@date_2 +#### A masked pattern was here #### +PREHOOK: query: drop table date_1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@date_1 +PREHOOK: Output: default@date_1 +POSTHOOK: query: drop table date_1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@date_1 +POSTHOOK: Output: default@date_1 +PREHOOK: query: drop table date_2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@date_2 +PREHOOK: Output: default@date_2 +POSTHOOK: query: drop table date_2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@date_2 +POSTHOOK: Output: default@date_2