You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sa...@apache.org on 2019/04/01 10:23:30 UTC
[hive] branch branch-3.1 updated: HIVE-21540: Query with join
condition having date literal throws SemanticException (Sankar Hariappan,
reviewed by Zoltan Haindrich)
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 <sa...@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 <sa...@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