mirror of
https://github.com/MariaDB/server.git
synced 2025-08-31 22:22:30 +03:00
Added support for a LOCK TABLES...WHERE ENGINE = InnoDB query which sets
transactional table locks to tables mentioned in the query. These locks are released at the end of the transaction automatically. This is fix for bugs #5655, #5998 and issue #3762.
This commit is contained in:
@@ -3252,6 +3252,27 @@ create_error:
|
||||
thd->options&= ~(ulong) (OPTION_TABLE_LOCK);
|
||||
thd->in_lock_tables=0;
|
||||
break;
|
||||
case SQLCOM_LOCK_TABLES_TRANSACTIONAL:
|
||||
{
|
||||
uint counter = 0;
|
||||
|
||||
if (check_db_used(thd, all_tables))
|
||||
goto error;
|
||||
if (check_table_access(thd, LOCK_TABLES_ACL | SELECT_ACL, all_tables, 0))
|
||||
goto error;
|
||||
|
||||
thd->in_lock_tables=1;
|
||||
thd->options|= OPTION_TABLE_LOCK;
|
||||
|
||||
if (open_tables(thd, all_tables, &counter) == 0 &&
|
||||
transactional_lock_tables(thd, all_tables, counter) == 0)
|
||||
send_ok(thd);
|
||||
else
|
||||
thd->options&= ~(ulong) (OPTION_TABLE_LOCK);
|
||||
|
||||
thd->in_lock_tables=0;
|
||||
break;
|
||||
}
|
||||
case SQLCOM_CREATE_DB:
|
||||
{
|
||||
char *alias;
|
||||
|
Reference in New Issue
Block a user