mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
lock option in table list
This commit is contained in:
parent
ec17cac968
commit
065f3e572c
3 changed files with 14 additions and 28 deletions
|
@ -1282,4 +1282,7 @@ List<String>* st_select_lex::get_ignore_index()
|
|||
return ignore_index_ptr;
|
||||
}
|
||||
|
||||
// There are st_select_lex::add_table_to_list in sql_parse.cc
|
||||
/*
|
||||
There are st_select_lex::add_table_to_list &
|
||||
st_select_lex::set_lock_for_tables in sql_parse.cc
|
||||
*/
|
||||
|
|
|
@ -1426,20 +1426,7 @@ mysql_execute_command(THD *thd)
|
|||
{
|
||||
if (!result)
|
||||
{
|
||||
if ((result=new select_send()))
|
||||
{
|
||||
/*
|
||||
Normal select:
|
||||
Change lock if we are using SELECT HIGH PRIORITY,
|
||||
FOR UPDATE or IN SHARE MODE
|
||||
|
||||
TODO: Delete the following loop when locks is set by sql_yacc
|
||||
*/
|
||||
TABLE_LIST *table;
|
||||
for (table = tables ; table ; table=table->next)
|
||||
table->lock_type= lex->lock_option;
|
||||
}
|
||||
else
|
||||
if (!(result=new select_send()))
|
||||
{
|
||||
res= -1;
|
||||
#ifdef DELETE_ITEMS
|
||||
|
@ -1663,9 +1650,6 @@ mysql_execute_command(THD *thd)
|
|||
TABLE_LIST *table;
|
||||
if (check_table_access(thd, SELECT_ACL, tables->next))
|
||||
goto error; // Error message is given
|
||||
/* TODO: Delete the following loop when locks is set by sql_yacc */
|
||||
for (table = tables->next ; table ; table=table->next)
|
||||
table->lock_type= lex->lock_option;
|
||||
}
|
||||
unit->offset_limit_cnt= select_lex->offset_limit;
|
||||
unit->select_limit_cnt= select_lex->select_limit+
|
||||
|
@ -2023,12 +2007,6 @@ mysql_execute_command(THD *thd)
|
|||
net_printf(thd,ER_INSERT_TABLE_USED,tables->real_name);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
{
|
||||
/* TODO: Delete the following loop when locks is set by sql_yacc */
|
||||
TABLE_LIST *table;
|
||||
for (table = tables->next ; table ; table=table->next)
|
||||
table->lock_type= lex->lock_option;
|
||||
}
|
||||
|
||||
/* Skip first table, which is the table we are inserting in */
|
||||
lex->select_lex.table_list.first=
|
||||
|
|
|
@ -798,7 +798,10 @@ create:
|
|||
($2 &
|
||||
HA_LEX_CREATE_TMP_TABLE ?
|
||||
&tmp_table_alias :
|
||||
(LEX_STRING*) 0),1))
|
||||
(LEX_STRING*) 0),1,
|
||||
((using_update_log)?
|
||||
TL_READ_NO_INSERT:
|
||||
TL_READ)))
|
||||
YYABORT;
|
||||
lex->create_list.empty();
|
||||
lex->key_list.empty();
|
||||
|
@ -2374,8 +2377,9 @@ join_table:
|
|||
}
|
||||
table_ident opt_table_alias opt_key_definition
|
||||
{
|
||||
SELECT_LEX_NODE *sel=Select;
|
||||
if (!($$= sel->add_table_to_list($2, $3, 0, TL_UNLOCK,
|
||||
LEX *lex= Lex;
|
||||
SELECT_LEX_NODE *sel= lex->current_select;
|
||||
if (!($$= sel->add_table_to_list($2, $3, 0, lex->lock_option,
|
||||
sel->get_use_index(),
|
||||
sel->get_ignore_index())))
|
||||
YYABORT;
|
||||
|
@ -2388,7 +2392,8 @@ join_table:
|
|||
SELECT_LEX_UNIT *unit= lex->current_select->master_unit();
|
||||
lex->current_select= unit->outer_select();
|
||||
if (!($$= lex->current_select->
|
||||
add_table_to_list(new Table_ident(unit), $5, 0, TL_UNLOCK)))
|
||||
add_table_to_list(new Table_ident(unit), $5, 0,
|
||||
lex->lock_option)))
|
||||
YYABORT;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue