Loading sql/item.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1027,7 +1027,7 @@ Item_field::Item_field(THD *thd, Field *f) structure can go away and pop up again between subsequent executions of a prepared statement). */ if (thd->current_arena->is_stmt_prepare()) if (thd->current_arena->is_stmt_prepare_or_first_sp_execute()) { if (db_name) orig_db_name= thd->strdup(db_name); Loading sql/item_subselect.cc +1 −1 Original line number Diff line number Diff line Loading @@ -362,7 +362,7 @@ Item_singlerow_subselect::select_transformer(JOIN *join) because we do not rollback this changes TODO: make rollback for it, or special name resolving mode in 5.0. */ !arena->is_stmt_prepare() !arena->is_stmt_prepare_or_first_sp_execute() ) { Loading sql/sql_class.h +2 −1 Original line number Diff line number Diff line Loading @@ -695,7 +695,8 @@ class Item_arena virtual Type type() const; virtual ~Item_arena() {}; inline bool is_stmt_prepare() const { return (int)state < (int)PREPARED; } inline bool is_stmt_prepare_or_first_sp_execute() const { return (int)state < (int)PREPARED; } inline bool is_first_stmt_execute() const { return state == PREPARED; } inline bool is_stmt_execute() const { return state == PREPARED || state == EXECUTED; } Loading sql/sql_parse.cc +2 −2 Original line number Diff line number Diff line Loading @@ -5894,7 +5894,7 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd, ptr->db= empty_c_string; ptr->db_length= 0; } if (thd->current_arena->is_stmt_prepare()) if (thd->current_arena->is_stmt_prepare_or_first_sp_execute()) ptr->db= thd->strdup(ptr->db); ptr->alias= alias_str; Loading Loading @@ -6972,7 +6972,7 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables, against the opened tables to ensure we don't use a table that is part of the view (which can only be done after the table has been opened). */ if (thd->current_arena->is_stmt_prepare()) if (thd->current_arena->is_stmt_prepare_or_first_sp_execute()) { /* For temporary tables we don't have to check if the created table exists Loading sql/sql_union.cc +1 −1 Original line number Diff line number Diff line Loading @@ -323,7 +323,7 @@ bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result, } if (tmp_arena) thd->restore_backup_item_arena(tmp_arena, &backup); if (arena->is_stmt_prepare()) if (arena->is_stmt_prepare_or_first_sp_execute()) { /* prepare fake select to initialize it correctly */ init_prepare_fake_select_lex(thd); Loading Loading
sql/item.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1027,7 +1027,7 @@ Item_field::Item_field(THD *thd, Field *f) structure can go away and pop up again between subsequent executions of a prepared statement). */ if (thd->current_arena->is_stmt_prepare()) if (thd->current_arena->is_stmt_prepare_or_first_sp_execute()) { if (db_name) orig_db_name= thd->strdup(db_name); Loading
sql/item_subselect.cc +1 −1 Original line number Diff line number Diff line Loading @@ -362,7 +362,7 @@ Item_singlerow_subselect::select_transformer(JOIN *join) because we do not rollback this changes TODO: make rollback for it, or special name resolving mode in 5.0. */ !arena->is_stmt_prepare() !arena->is_stmt_prepare_or_first_sp_execute() ) { Loading
sql/sql_class.h +2 −1 Original line number Diff line number Diff line Loading @@ -695,7 +695,8 @@ class Item_arena virtual Type type() const; virtual ~Item_arena() {}; inline bool is_stmt_prepare() const { return (int)state < (int)PREPARED; } inline bool is_stmt_prepare_or_first_sp_execute() const { return (int)state < (int)PREPARED; } inline bool is_first_stmt_execute() const { return state == PREPARED; } inline bool is_stmt_execute() const { return state == PREPARED || state == EXECUTED; } Loading
sql/sql_parse.cc +2 −2 Original line number Diff line number Diff line Loading @@ -5894,7 +5894,7 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd, ptr->db= empty_c_string; ptr->db_length= 0; } if (thd->current_arena->is_stmt_prepare()) if (thd->current_arena->is_stmt_prepare_or_first_sp_execute()) ptr->db= thd->strdup(ptr->db); ptr->alias= alias_str; Loading Loading @@ -6972,7 +6972,7 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables, against the opened tables to ensure we don't use a table that is part of the view (which can only be done after the table has been opened). */ if (thd->current_arena->is_stmt_prepare()) if (thd->current_arena->is_stmt_prepare_or_first_sp_execute()) { /* For temporary tables we don't have to check if the created table exists Loading
sql/sql_union.cc +1 −1 Original line number Diff line number Diff line Loading @@ -323,7 +323,7 @@ bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result, } if (tmp_arena) thd->restore_backup_item_arena(tmp_arena, &backup); if (arena->is_stmt_prepare()) if (arena->is_stmt_prepare_or_first_sp_execute()) { /* prepare fake select to initialize it correctly */ init_prepare_fake_select_lex(thd); Loading