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

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

                Author: ASF GitHub Bot
            Created on: 06/Jan/23 06:03
            Start Date: 06/Jan/23 06:03
    Worklog Time Spent: 10m 
      Work Description: pvary commented on code in PR #3888:
URL: https://github.com/apache/hive/pull/3888#discussion_r1063145114


##########
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java:
##########
@@ -187,6 +187,16 @@ public void alterTable(RawStore msdb, Warehouse wh, String 
catName, String dbnam
             TableName.getQualified(catName, dbname, name) + " doesn't exist");
       }
 
+      String expectedKey = environmentContext != null && 
environmentContext.getProperties() != null ?
+              
environmentContext.getProperties().get(hive_metastoreConstants.EXPECTED_PARAMETER_KEY)
 : null;
+      String expectedValue = environmentContext != null && 
environmentContext.getProperties() != null ?
+              
environmentContext.getProperties().get(hive_metastoreConstants.EXPECTED_PARAMETER_VALUE)
 : null;
+      if (expectedKey != null && expectedValue != null
+              && !expectedValue.equals(oldt.getParameters().get(expectedKey))) 
{
+        throw new MetaException("The table has been modified. The parameter 
value for key '" + expectedKey + "' is '"

Review Comment:
   Users does not have to do anything. We set the isolation level per 
transaction automatically from the code. Similarly as we do in the TxnHandler 
methods where the default isolation level is not enough. 





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

    Worklog Id:     (was: 837412)
    Time Spent: 2h 20m  (was: 2h 10m)

> Allow transactional check of Table parameter before altering the Table
> ----------------------------------------------------------------------
>
>                 Key: HIVE-26882
>                 URL: https://issues.apache.org/jira/browse/HIVE-26882
>             Project: Hive
>          Issue Type: Improvement
>          Components: Standalone Metastore
>            Reporter: Peter Vary
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> We should add the possibility to transactionally check if a Table parameter 
> is changed before altering the table in the HMS.
> This would provide an alternative, less error-prone and faster way to commit 
> an Iceberg table, as the Iceberg table currently needs to:
> - Create an exclusive lock
> - Get the table metadata to check if the current snapshot is not changed
> - Update the table metadata
> - Release the lock
> After the change these 4 HMS calls could be substituted with a single alter 
> table call.
> Also we could avoid cases where the locks are left hanging by failed processes



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to