[ https://issues.apache.org/jira/browse/HIVE-26882?focusedWorklogId=837461&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-837461 ]
ASF GitHub Bot logged work on HIVE-26882: ----------------------------------------- Author: ASF GitHub Bot Created on: 06/Jan/23 12:04 Start Date: 06/Jan/23 12:04 Worklog Time Spent: 10m Work Description: pvary commented on code in PR #3888: URL: https://github.com/apache/hive/pull/3888#discussion_r1063384632 ########## standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java: ########## @@ -6038,17 +6039,26 @@ public void alter_table_with_environment_context(final String dbname, throws InvalidOperationException, MetaException { String[] parsedDbName = parseDbName(dbname, conf); alter_table_core(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], - name, newTable, envContext, null, null, null); + name, newTable, envContext, null, null, null, null, null); } private void alter_table_core(String catName, String dbname, String name, Table newTable, - EnvironmentContext envContext, String validWriteIdList, List<String> processorCapabilities, String processorId) + EnvironmentContext envContext, String validWriteIdList, List<String> processorCapabilities, + String processorId, String expectedPropertyKey, String expectedPropertyValue) Review Comment: After some more thought, I would opt for keeping the PR as it is - checking only for a single property. If someone would need more properties to check, then they still could create an uber property - as a hash of the relevant properties -, and use the `EXPECTED_PARAMETER_KEY` and `EXPECTED_PARAMETER_VALUE` to check for the changes of this uber property. And if it is that hard for them, they could still add a new feature later. Issue Time Tracking ------------------- Worklog Id: (was: 837461) Time Spent: 2h 40m (was: 2.5h) > 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 40m > 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)