Skip to content

Commit

Permalink
HIVE-23183: Make TABLE Token Optional in TRUNCATE Statement (David Mo…
Browse files Browse the repository at this point in the history
…llitor, reviewed by Miklos Gergely)
  • Loading branch information
belugabehr committed Apr 14, 2020
1 parent fcac603 commit ffad656
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 10 additions & 1 deletion ql/src/test/queries/clientpositive/truncate_table.q
Original file line number Diff line number Diff line change
@@ -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');
Expand All @@ -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');
Expand Down
53 changes: 53 additions & 0 deletions ql/src/test/results/clientpositive/truncate_table.q.out
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit ffad656

Please sign in to comment.