[ 
https://issues.apache.org/jira/browse/HIVE-25398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17444633#comment-17444633
 ] 

Zoltan Haindrich commented on HIVE-25398:
-----------------------------------------

I think if the user is already "aware" that the translator is there and adds 
'external.table.purge'='false' by himself ;
he will be also aware that the resulting table is an external table... so he 
could be more explicit regarding that as well.

in other word: I'm wondering what part of the translator would the user benefit 
from by not writing EXTERNAL explicitly?

> 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
>          Components: Standalone Metastore
>            Reporter: Panagiotis Garefalakis
>            Assignee: Panagiotis Garefalakis
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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.20.1#820001)

Reply via email to