mirror of
https://github.com/MariaDB/server.git
synced 2026-04-28 11:15:33 +02:00
Merge mysql.com:/home/timka/mysql/src/5.0-2486
into mysql.com:/home/timka/mysql/src/5.1-dbg sql/item.cc: Auto merged sql/item.h: Auto merged sql/mysql_priv.h: Auto merged sql/sql_acl.cc: Auto merged sql/sql_acl.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/table.h: Auto merged sql/sql_base.cc: SCCS merged sql/table.cc: SCCS merged
This commit is contained in:
commit
f1ac6bb975
14 changed files with 294 additions and 375 deletions
42
sql/item.h
42
sql/item.h
|
|
@ -326,6 +326,48 @@ struct Name_resolution_context: Sql_alloc
|
|||
};
|
||||
|
||||
|
||||
/*
|
||||
Store and restore the current state of a name resolution context.
|
||||
*/
|
||||
|
||||
class Name_resolution_context_state
|
||||
{
|
||||
private:
|
||||
TABLE_LIST *save_table_list;
|
||||
TABLE_LIST *save_first_name_resolution_table;
|
||||
TABLE_LIST *save_next_name_resolution_table;
|
||||
bool save_resolve_in_select_list;
|
||||
|
||||
public:
|
||||
TABLE_LIST *save_next_local;
|
||||
|
||||
public:
|
||||
/* Save the state of a name resolution context. */
|
||||
void save_state(Name_resolution_context *context, TABLE_LIST *table_list)
|
||||
{
|
||||
save_table_list= context->table_list;
|
||||
save_first_name_resolution_table= context->first_name_resolution_table;
|
||||
save_next_name_resolution_table= (context->first_name_resolution_table) ?
|
||||
context->first_name_resolution_table->
|
||||
next_name_resolution_table :
|
||||
NULL;
|
||||
save_resolve_in_select_list= context->resolve_in_select_list;
|
||||
save_next_local= table_list->next_local;
|
||||
}
|
||||
|
||||
/* Restore a name resolution context from saved state. */
|
||||
void restore_state(Name_resolution_context *context, TABLE_LIST *table_list)
|
||||
{
|
||||
table_list->next_local= save_next_local;
|
||||
context->table_list= save_table_list;
|
||||
context->first_name_resolution_table= save_first_name_resolution_table;
|
||||
if (context->first_name_resolution_table)
|
||||
context->first_name_resolution_table->
|
||||
next_name_resolution_table= save_next_name_resolution_table;
|
||||
context->resolve_in_select_list= save_resolve_in_select_list;
|
||||
}
|
||||
};
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
typedef bool (Item::*Item_processor)(byte *arg);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue