[ https://issues.apache.org/jira/browse/HIVE-26882?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17824659#comment-17824659 ]
Rui Li commented on HIVE-26882: ------------------------------- Hi [~pvary], I tested using docker image {{{}mysql:5.6.17{}}}. Tried both plain select and select for update, the result is same as in MariaDB. {code:sql} txn1> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) txn1> select * from tbl where `key` = 'k' and val = 'v0' for update; Empty set (19.00 sec) txn1> update tbl set val = 'v1' where `key` = 'k' and val = 'v0'; Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0 txn1> commit; Query OK, 0 rows affected (0.00 sec) ----------------------------------------------------------------------------- txn2> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) txn2> select * from tbl where `key` = 'k' and val = 'v0' for update; +------+------+ | key | val | +------+------+ | k | v0 | +------+------+ 1 row in set (0.00 sec) txn2> update tbl set val = 'v2' where `key` = 'k' and val = 'v0'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 txn2> commit; Query OK, 0 rows affected (0.01 sec) {code} > 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 > Assignee: Peter Vary > Priority: Major > Labels: pull-request-available > Fix For: 2.3.10, 4.0.0-beta-1 > > Time Spent: 4h 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)