mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-root
This commit is contained in:
commit
c661f47380
5 changed files with 7 additions and 6 deletions
|
@ -1027,7 +1027,7 @@ Item_field::Item_field(THD *thd, Field *f)
|
||||||
structure can go away and pop up again between subsequent executions
|
structure can go away and pop up again between subsequent executions
|
||||||
of a prepared statement).
|
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)
|
if (db_name)
|
||||||
orig_db_name= thd->strdup(db_name);
|
orig_db_name= thd->strdup(db_name);
|
||||||
|
|
|
@ -362,7 +362,7 @@ Item_singlerow_subselect::select_transformer(JOIN *join)
|
||||||
because we do not rollback this changes
|
because we do not rollback this changes
|
||||||
TODO: make rollback for it, or special name resolving mode in 5.0.
|
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()
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -695,7 +695,8 @@ public:
|
||||||
virtual Type type() const;
|
virtual Type type() const;
|
||||||
virtual ~Item_arena() {};
|
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_first_stmt_execute() const { return state == PREPARED; }
|
||||||
inline bool is_stmt_execute() const
|
inline bool is_stmt_execute() const
|
||||||
{ return state == PREPARED || state == EXECUTED; }
|
{ return state == PREPARED || state == EXECUTED; }
|
||||||
|
|
|
@ -5894,7 +5894,7 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd,
|
||||||
ptr->db= empty_c_string;
|
ptr->db= empty_c_string;
|
||||||
ptr->db_length= 0;
|
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->db= thd->strdup(ptr->db);
|
||||||
|
|
||||||
ptr->alias= alias_str;
|
ptr->alias= alias_str;
|
||||||
|
@ -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
|
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).
|
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
|
For temporary tables we don't have to check if the created table exists
|
||||||
|
|
|
@ -323,7 +323,7 @@ bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||||
}
|
}
|
||||||
if (tmp_arena)
|
if (tmp_arena)
|
||||||
thd->restore_backup_item_arena(tmp_arena, &backup);
|
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 */
|
/* prepare fake select to initialize it correctly */
|
||||||
init_prepare_fake_select_lex(thd);
|
init_prepare_fake_select_lex(thd);
|
||||||
|
|
Loading…
Add table
Reference in a new issue