1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

now all tables of query are locked in one place (including derived tables)

fixed BUG#2120 and other problem with EXPLAINing derived tables
This commit is contained in:
bell@sanja.is.com.ua
2004-02-01 15:30:32 +02:00
parent 95fcfaf63c
commit 2a9cd37cd6
18 changed files with 311 additions and 248 deletions

View File

@ -336,8 +336,7 @@ public:
uint union_option;
void init_query();
bool create_total_list(THD *thd, st_lex *lex, TABLE_LIST **result,
bool check_current_derived);
bool create_total_list(THD *thd, st_lex *lex, TABLE_LIST **result);
st_select_lex_unit* master_unit();
st_select_lex* outer_select();
st_select_lex* first_select() { return (st_select_lex*) slave; }
@ -355,14 +354,15 @@ public:
int exec();
int cleanup();
bool check_updateable(char *db, char *table);
void print(String *str);
friend void mysql_init_query(THD *thd);
friend int subselect_union_engine::exec();
private:
bool create_total_list_n_last_return(THD *thd, st_lex *lex,
TABLE_LIST ***result,
bool check_current_derived);
TABLE_LIST ***result);
};
typedef class st_select_lex_unit SELECT_LEX_UNIT;
@ -497,6 +497,7 @@ public:
init_select();
}
bool setup_ref_array(THD *thd, uint order_group_num);
bool check_updateable(char *db, char *table);
void print(THD *thd, String *str);
static void print_order(String *str, ORDER *order);
void print_limit(THD *thd, String *str);