You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by dm...@apache.org on 2020/04/14 13:50:10 UTC

[hive] branch master updated: HIVE-23183: Make TABLE Token Optional in TRUNCATE Statement (David Mollitor, reviewed by Miklos Gergely)

This is an automated email from the ASF dual-hosted git repository.

dmollitor 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 ffad656  HIVE-23183: Make TABLE Token Optional in TRUNCATE Statement (David Mollitor, reviewed by Miklos Gergely)
ffad656 is described below

commit ffad6567b2be5ad02a48d73b5f5acbb899eb07c5
Author: David Mollitor <dm...@apache.org>
AuthorDate: Tue Apr 14 09:48:14 2020 -0400

    HIVE-23183: Make TABLE Token Optional in TRUNCATE Statement (David Mollitor, reviewed by Miklos Gergely)
---
 .../org/apache/hadoop/hive/ql/parse/HiveParser.g   |  2 +-
 .../test/queries/clientpositive/truncate_table.q   | 11 ++++-
 .../results/clientpositive/truncate_table.q.out    | 53 ++++++++++++++++++++++
 3 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
index 2b865f3..b03b098 100644
--- a/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
+++ b/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
@@ -1185,7 +1185,7 @@ createTableStatement
 truncateTableStatement
 @init { pushMsg("truncate table statement", state); }
 @after { popMsg(state); }
-    : KW_TRUNCATE KW_TABLE tablePartitionPrefix (KW_COLUMNS LPAREN columnNameList RPAREN)? force?
+    : KW_TRUNCATE KW_TABLE? tablePartitionPrefix (KW_COLUMNS LPAREN columnNameList RPAREN)? force?
     -> ^(TOK_TRUNCATETABLE tablePartitionPrefix columnNameList? force?);
 
 dropTableStatement
diff --git a/ql/src/test/queries/clientpositive/truncate_table.q b/ql/src/test/queries/clientpositive/truncate_table.q
index 6a1ce7a..5c20c89 100644
--- a/ql/src/test/queries/clientpositive/truncate_table.q
+++ b/ql/src/test/queries/clientpositive/truncate_table.q
@@ -1,5 +1,8 @@
 create table src_truncate (key string, value string);
-load data local inpath '../../data/files/kv1.txt' into table src_truncate;;
+load data local inpath '../../data/files/kv1.txt' into table src_truncate;
+
+create table src_truncate_alt (key string, value string);
+load data local inpath '../../data/files/kv1.txt' into table src_truncate_alt;
 
 create table srcpart_truncate (key string, value string) partitioned by (ds string, hr string);
 alter table srcpart_truncate add partition (ds='2008-04-08', hr='11');        
@@ -23,6 +26,12 @@ TRUNCATE TABLE src_truncate;
 select * from src_truncate;
 select count (*) from src_truncate;
 
+-- truncate non-partitioned table with alternative syntax
+explain TRUNCATE src_truncate_alt;
+TRUNCATE src_truncate_alt;
+select * from src_truncate_alt;
+select count (*) from src_truncate_alt;
+
 -- truncate a partition
 explain TRUNCATE TABLE srcpart_truncate partition (ds='2008-04-08', hr='11');
 TRUNCATE TABLE srcpart_truncate partition (ds='2008-04-08', hr='11');
diff --git a/ql/src/test/results/clientpositive/truncate_table.q.out b/ql/src/test/results/clientpositive/truncate_table.q.out
index 0607bcb..8feafce 100644
--- a/ql/src/test/results/clientpositive/truncate_table.q.out
+++ b/ql/src/test/results/clientpositive/truncate_table.q.out
@@ -14,6 +14,22 @@ POSTHOOK: query: load data local inpath '../../data/files/kv1.txt' into table sr
 POSTHOOK: type: LOAD
 #### A masked pattern was here ####
 POSTHOOK: Output: default@src_truncate
+PREHOOK: query: create table src_truncate_alt (key string, value string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_truncate_alt
+POSTHOOK: query: create table src_truncate_alt (key string, value string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_truncate_alt
+PREHOOK: query: load data local inpath '../../data/files/kv1.txt' into table src_truncate_alt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@src_truncate_alt
+POSTHOOK: query: load data local inpath '../../data/files/kv1.txt' into table src_truncate_alt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@src_truncate_alt
 PREHOOK: query: create table srcpart_truncate (key string, value string) partitioned by (ds string, hr string)
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
@@ -151,6 +167,43 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src_truncate
 #### A masked pattern was here ####
 0
+PREHOOK: query: explain TRUNCATE src_truncate_alt
+PREHOOK: type: TRUNCATETABLE
+PREHOOK: Output: default@src_truncate_alt
+POSTHOOK: query: explain TRUNCATE src_truncate_alt
+POSTHOOK: type: TRUNCATETABLE
+POSTHOOK: Output: default@src_truncate_alt
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Truncate Table or Partition
+      table name: default.src_truncate_alt
+
+PREHOOK: query: TRUNCATE src_truncate_alt
+PREHOOK: type: TRUNCATETABLE
+PREHOOK: Output: default@src_truncate_alt
+POSTHOOK: query: TRUNCATE src_truncate_alt
+POSTHOOK: type: TRUNCATETABLE
+POSTHOOK: Output: default@src_truncate_alt
+PREHOOK: query: select * from src_truncate_alt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_truncate_alt
+#### A masked pattern was here ####
+POSTHOOK: query: select * from src_truncate_alt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_truncate_alt
+#### A masked pattern was here ####
+PREHOOK: query: select count (*) from src_truncate_alt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src_truncate_alt
+#### A masked pattern was here ####
+POSTHOOK: query: select count (*) from src_truncate_alt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src_truncate_alt
+#### A masked pattern was here ####
+0
 PREHOOK: query: explain TRUNCATE TABLE srcpart_truncate partition (ds='2008-04-08', hr='11')
 PREHOOK: type: TRUNCATETABLE
 PREHOOK: Output: default@srcpart_truncate@ds=2008-04-08/hr=11