Further work on UNIONS

parent 910d5c3b
...@@ -364,3 +364,7 @@ support-files/mysql.server ...@@ -364,3 +364,7 @@ support-files/mysql.server
support-files/mysql.spec support-files/mysql.spec
tags tags
tmp/* tmp/*
libmysqld/hash_filo.cc
libmysqld/sql_unions.cc
libmysqld/stacktrace.c
sql/share/mysql
...@@ -47,7 +47,7 @@ static void mysql_init_query(THD *thd); ...@@ -47,7 +47,7 @@ static void mysql_init_query(THD *thd);
static void remove_escape(char *name); static void remove_escape(char *name);
static void refresh_status(void); static void refresh_status(void);
static bool append_file_to_dir(char **filename_ptr, char *table_name); static bool append_file_to_dir(char **filename_ptr, char *table_name);
static inline int link_in_large_list_and_check_acl(THD *thd,LEX *lex,SQL_LIST *tables); static int link_in_large_list_and_check_acl(THD *thd,LEX *lex,SQL_LIST *tables);
const char *any_db="*any*"; // Special symbol for check_access const char *any_db="*any*"; // Special symbol for check_access
...@@ -2878,7 +2878,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias, ...@@ -2878,7 +2878,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
DBUG_RETURN(ptr); DBUG_RETURN(ptr);
} }
static inline int link_in_large_list_and_check_acl(THD *thd,LEX *lex,SQL_LIST *tables) static int link_in_large_list_and_check_acl(THD *thd,LEX *lex,SQL_LIST *tables)
{ {
SELECT_LEX *sl; const char *current_db=thd->db ? thd->db : ""; SELECT_LEX *sl; const char *current_db=thd->db ? thd->db : "";
for (sl=&lex->select_lex;sl;sl=sl->next) for (sl=&lex->select_lex;sl;sl=sl->next)
...@@ -2904,6 +2904,8 @@ static inline int link_in_large_list_and_check_acl(THD *thd,LEX *lex,SQL_LIST *t ...@@ -2904,6 +2904,8 @@ static inline int link_in_large_list_and_check_acl(THD *thd,LEX *lex,SQL_LIST *t
if (!cursor || !tables->first) if (!cursor || !tables->first)
{ {
aux->lock_type= lex->lock_option; aux->lock_type= lex->lock_option;
if (!tables->next)
tables->next= (byte**) &tables->first;
link_in_list(tables,(byte*)aux,(byte**) &aux->next); link_in_list(tables,(byte*)aux,(byte**) &aux->next);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment