This is an automated email from the ASF dual-hosted git repository.
daijy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 5f30498 HIVE-21296: Dropping varchar partition throw exception
(Daniel Dai, reviewed by Anishek Agarwal)
5f30498 is described below
commit 5f3049828ca872d88c80602e2e7d46d9be6255f2
Author: Daniel Dai <[email protected]>
AuthorDate: Thu Feb 21 10:16:04 2019 -0800
HIVE-21296: Dropping varchar partition throw exception (Daniel Dai,
reviewed by Anishek Agarwal)
Signed-off-by: Anishek Agarwal <[email protected]>
---
.../java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java | 3 ++-
ql/src/test/queries/clientpositive/partition_varchar1.q | 2 ++
ql/src/test/results/clientpositive/partition_varchar1.q.out | 10 ++++++++++
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java
b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java
index eb5b111..9febee4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java
@@ -102,7 +102,8 @@ public class ExprNodeDescUtils {
private static boolean isDefaultPartition(ExprNodeDesc origin, String
defaultPartitionName) {
if (origin instanceof ExprNodeConstantDesc &&
((ExprNodeConstantDesc)origin).getValue() != null &&
-
((ExprNodeConstantDesc)origin).getValue().equals(defaultPartitionName)) {
+ ((ExprNodeConstantDesc)origin).getValue() instanceof String &&
((ExprNodeConstantDesc)origin).getValue()
+ .equals(defaultPartitionName)) {
return true;
} else {
return false;
diff --git a/ql/src/test/queries/clientpositive/partition_varchar1.q
b/ql/src/test/queries/clientpositive/partition_varchar1.q
index 216bcf5..ce9ee76 100644
--- a/ql/src/test/queries/clientpositive/partition_varchar1.q
+++ b/ql/src/test/queries/clientpositive/partition_varchar1.q
@@ -42,4 +42,6 @@ select count(*) from partition_varchar_1 where dt <=
'2000-01-01' and region = 1
-- 20
select count(*) from partition_varchar_1 where dt <> '2000-01-01' and region =
1;
+alter table partition_varchar_1 drop partition (dt = '2000-01-01');
+
drop table partition_varchar_1;
diff --git a/ql/src/test/results/clientpositive/partition_varchar1.q.out
b/ql/src/test/results/clientpositive/partition_varchar1.q.out
index 93c9adf..b5d1890 100644
--- a/ql/src/test/results/clientpositive/partition_varchar1.q.out
+++ b/ql/src/test/results/clientpositive/partition_varchar1.q.out
@@ -190,6 +190,16 @@ POSTHOOK: type: QUERY
POSTHOOK: Input: default@partition_varchar_1
#### A masked pattern was here ####
20
+PREHOOK: query: alter table partition_varchar_1 drop partition (dt =
'2000-01-01')
+PREHOOK: type: ALTERTABLE_DROPPARTS
+PREHOOK: Input: default@partition_varchar_1
+PREHOOK: Output: default@partition_varchar_1@dt=2000-01-01/region=1
+PREHOOK: Output: default@partition_varchar_1@dt=2000-01-01/region=2
+POSTHOOK: query: alter table partition_varchar_1 drop partition (dt =
'2000-01-01')
+POSTHOOK: type: ALTERTABLE_DROPPARTS
+POSTHOOK: Input: default@partition_varchar_1
+POSTHOOK: Output: default@partition_varchar_1@dt=2000-01-01/region=1
+POSTHOOK: Output: default@partition_varchar_1@dt=2000-01-01/region=2
PREHOOK: query: drop table partition_varchar_1
PREHOOK: type: DROPTABLE
PREHOOK: Input: default@partition_varchar_1