diff options
author | unknown <davi@moksha.local> | 2007-08-16 14:51:37 -0300 |
---|---|---|
committer | unknown <davi@moksha.local> | 2007-08-16 14:51:37 -0300 |
commit | 409938f22a6b383bc987a4463aef60483f458394 (patch) | |
tree | c6387b21af93f5dbd4171e67e74b4490d4e7996e /sql/sql_base.cc | |
parent | a0ed0ea12870e87316f9086b8a1152eb6c4c2b8b (diff) | |
download | mariadb-git-409938f22a6b383bc987a4463aef60483f458394.tar.gz |
Bug#29936 (Stored Procedure DML ignores low_priority_updates setting)
This is a follow up for the patch for Bug#26162 "Trigger DML ignores low_priority_updates setting", where the stored procedure ignores the session setting of low_priority_updates.
For every table open operation with default write (TL_WRITE_DEFAULT) lock_type, downgrade the lock type to the session setting of low_priority_updates.
sql/lock.cc:
Add late lock_type assertion.
sql/sql_base.cc:
Possibly downgrade lock type to the the session setting of low_priority_updates and also remove early assertion.
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r-- | sql/sql_base.cc | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 1c01248c283..0477c40b42d 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1537,7 +1537,6 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root, HASH_SEARCH_STATE state; DBUG_ENTER("open_table"); - DBUG_ASSERT (table_list->lock_type != TL_WRITE_DEFAULT); /* find a unused table in the open table cache */ if (refresh) *refresh=0; @@ -2708,11 +2707,6 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags) { safe_to_ignore_table= FALSE; - if (tables->lock_type == TL_WRITE_DEFAULT) - { - tables->lock_type= thd->update_lock_default; - DBUG_ASSERT (tables->lock_type >= TL_WRITE_ALLOW_WRITE); - } /* Ignore placeholders for derived tables. After derived tables processing, link to created temporary table will be put here. @@ -2857,7 +2851,8 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags) } if (tables->lock_type != TL_UNLOCK && ! thd->locked_tables) - tables->table->reginfo.lock_type=tables->lock_type; + tables->table->reginfo.lock_type= tables->lock_type == TL_WRITE_DEFAULT ? + thd->update_lock_default : tables->lock_type; tables->table->grant= tables->grant; process_view_routines: |