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:
konstantin@mysql.com 2005-06-03 00:23:29 +04:00
commit c661f47380
5 changed files with 7 additions and 6 deletions

View file

@ -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);

View file

@ -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()
) )
{ {

View file

@ -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; }

View file

@ -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

View file

@ -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);