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

Reply via email to