[ 
https://issues.apache.org/jira/browse/HIVE-21500?focusedWorklogId=227295&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-227295
 ]

ASF GitHub Bot logged work on HIVE-21500:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 14/Apr/19 06:43
            Start Date: 14/Apr/19 06:43
    Worklog Time Spent: 10m 
      Work Description: sankarh commented on pull request #591: HIVE-21500: 
Disable conversion of managed table to external and vice versa at source.
URL: https://github.com/apache/hive/pull/591#discussion_r275142605
 
 

 ##########
 File path: 
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java
 ##########
 @@ -146,6 +146,12 @@ private void 
handleAlterTableTransactionalProp(PreAlterTableEvent context) throw
     }
 
     if (transactionalValuePresent) {
+      if (oldTable.getTableType().equals(TableType.MANAGED_TABLE.toString())
+              && 
newTable.getTableType().equals(TableType.EXTERNAL_TABLE.toString())) {
 
 Review comment:
   In fact, this code handles both conversion. If transactional key(not value) 
exist, it reaches this flow. So, it handles conversion from old transactional 
managed table to be converted to non-transactional external table.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 227295)
    Time Spent: 5h 50m  (was: 5h 40m)

> Disable conversion of managed table to external and vice versa at source.
> -------------------------------------------------------------------------
>
>                 Key: HIVE-21500
>                 URL: https://issues.apache.org/jira/browse/HIVE-21500
>             Project: Hive
>          Issue Type: Sub-task
>    Affects Versions: 4.0.0
>            Reporter: Sankar Hariappan
>            Assignee: Sankar Hariappan
>            Priority: Major
>              Labels: DR, Replication, pull-request-available
>         Attachments: HIVE-21500.01.patch, HIVE-21500.02.patch
>
>          Time Spent: 5h 50m
>  Remaining Estimate: 0h
>
> Couple of scenarios for Hive2 to Hive3(strict managed tables enabled) 
> replication where managed table is converted to external at source. 
> *Scenario-1: (ACID/MM table converted to external at target)*
> 1. Create non-ACID ORC format table.
> 2. Insert some rows
> 3. Replicate this create event which creates ACID table at target (due to 
> migration rule). Each insert event adds transactional metadata in HMS 
> corresponding to the current table.
> 4. Convert table to external table using ALTER command at source.
> *Scenario-2: (External table at target changes table location)*
> 1. Create non-ACID avro format table.
> 2. Insert some rows
> 3. Replicate this create event which creates external table at target (due to 
> migration rule). The data path is chosen under default external warehouse 
> directory.
> 4. Convert table to external table using ALTER command at source.
> It is unable to convert an ACID table to external table at target. Also, it 
> is hard to detect what would be the table type at target when perform this 
> ALTER table operation at source.
> So, it is decided to disable conversion of managed table at source (Hive2) to 
> EXTERNAL or vice-versa if the DB is enabled for replication and strict 
> managed is disabled.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to