Description
Currently if you create an external table using the command CREATE EXTERNAL TABLE table_name the TRUNCATE table table_name command fails as expected because only managed tables should be allowed to be truncated.
But if you set the external property of a previously managed table using ALTER TABLE table_name SET TBLPROPERTIES('EXTERNAL'='true'), truncate table command does not object and deletes all the data from the external table.
Eg: This works but it should not ..
0: jdbc:hive2://localhost:10000/default> create table test_ext2 (col1 string); No rows affected (0.424 seconds) 0: jdbc:hive2://localhost:10000/default> alter table test_ext2 set tblproperties ('EXTERNAL'='true'); No rows affected (0.149 seconds) 0: jdbc:hive2://localhost:10000/default> insert into table test_ext2 values ("test"); WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases. No rows affected (3.447 seconds) 0: jdbc:hive2://localhost:10000/default> 0: jdbc:hive2://localhost:10000/default> 0: jdbc:hive2://localhost:10000/default> select * from test_ext2; +-----------------+ | test_ext2.col1 | +-----------------+ | test | +-----------------+ 1 row selected (0.147 seconds) 0: jdbc:hive2://localhost:10000/default> truncate table test_ext2; No rows affected (0.138 seconds) 0: jdbc:hive2://localhost:10000/default> select * from test_ext2; +-----------------+ | test_ext2.col1 | +-----------------+ +-----------------+ No rows selected (0.134 seconds) 0: jdbc:hive2://localhost:10000/default>
Attachments
Attachments
Issue Links
- relates to
-
HIVE-19253 HMS ignores tableType property for external tables
- Patch Available