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