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