You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Panagiotis Garefalakis (Jira)" <ji...@apache.org> on 2021/07/28 10:33:00 UTC

[jira] [Created] (HIVE-25398) Converted external tables should be able to configure purge behaviour

Panagiotis Garefalakis created HIVE-25398:
---------------------------------------------

             Summary: Converted external tables should be able to configure purge behaviour
                 Key: HIVE-25398
                 URL: https://issues.apache.org/jira/browse/HIVE-25398
             Project: Hive
          Issue Type: Bug
            Reporter: Panagiotis Garefalakis
            Assignee: Panagiotis Garefalakis


Creating non-ACID MANAGED tables is not allowed on Hive, which is instead converting these tables to External: https://issues.apache.org/jira/browse/HIVE-22158
During table translation  both TRANSLATED_TO_EXTERNAL and 'external.table.purge' are set to True. However, there could be the case that the second parameter is already set in the table properties by the User. This is ticket is adding an extra check to maintain that property if set.

PS: A cleaner solution would be to create these Tables as External directly but there could be the case the User is taking advantage of the translation and is expecting the data NOT to be purged!

Example:
{code:java}
-- Non-ACID table will be translated to EXTERNAL
create table c(c int) LOCATION 'etp_1' TBLPROPERTIES('transactional'='false','external.table.purge'='false');
insert into c values(1);

-- Maintain the purge=false property set above
desc formatted c;
select count(*) from c;
drop table c;

-- Create table in same location, data should still be there
create table c(c int) LOCATION 'etp_1' TBLPROPERTIES('transactional'='false','external.table.purge'='false');
desc formatted c;
select count(*) from c;
{code}








--
This message was sent by Atlassian Jira
(v8.3.4#803005)