[ 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)