diff options
Diffstat (limited to 'sql/sql_lex.h')
-rw-r--r-- | sql/sql_lex.h | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 7a5a1c13f80..60965209cc9 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -344,7 +344,10 @@ public: Item_subselect *item; /* thread handler */ THD *thd; - /* fake SELECT_LEX for union processing */ + /* + SELECT_LEX for hidden SELECT in onion which process global + ORDER BY and LIMIT + */ st_select_lex *fake_select_lex; st_select_lex *union_distinct; /* pointer to the last UNION DISTINCT */ @@ -353,12 +356,18 @@ public: 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; } + st_select_lex* first_select() + { + return my_reinterpret_cast(st_select_lex*)(slave); + } st_select_lex* first_select_in_union() { - return (st_select_lex*) slave; + return my_reinterpret_cast(st_select_lex*)(slave); + } + st_select_lex_unit* next_unit() + { + return my_reinterpret_cast(st_select_lex_unit*)(next); } - st_select_lex_unit* next_unit() { return (st_select_lex_unit*) next; } st_select_lex* return_after_parsing() { return return_to; } void exclude_level(); void exclude_tree(); @@ -372,7 +381,8 @@ public: bool check_updateable(char *db, char *table); void print(String *str); - + + ulong init_prepare_fake_select_lex(THD *thd); void set_limit(st_select_lex *values, st_select_lex *sl); friend void mysql_init_query(THD *thd, bool lexonly); @@ -433,6 +443,8 @@ public: bool braces; /* SELECT ... UNION (SELECT ... ) <- this braces */ /* TRUE when having fix field called in processing of this SELECT */ bool having_fix_field; + /* explicit LIMIT clause was used */ + bool explicit_limit; /* SELECT for SELECT command st_select_lex. Used to privent scaning @@ -524,6 +536,14 @@ public: }; typedef class st_select_lex SELECT_LEX; +#define ALTER_ADD_COLUMN 1 +#define ALTER_DROP_COLUMN 2 +#define ALTER_CHANGE_COLUMN 4 +#define ALTER_ADD_INDEX 8 +#define ALTER_DROP_INDEX 16 +#define ALTER_RENAME 32 +#define ALTER_ORDER 64 +#define ALTER_OPTIONS 128 struct st_sp_chistics { @@ -601,6 +621,7 @@ typedef struct st_lex uint grant, grant_tot_col, which_columns; uint fk_delete_opt, fk_update_opt, fk_match_option; uint slave_thd_opt; + uint alter_flags; uint8 describe; bool drop_if_exists, drop_temporary, local_file; bool in_comment, ignore_space, verbose, simple_alter, no_write_to_binlog; @@ -643,6 +664,12 @@ typedef struct st_lex un->uncacheable|= cause; } } + TABLE_LIST *unlink_first_table(TABLE_LIST *tables, + TABLE_LIST **global_first, + TABLE_LIST **local_first); + TABLE_LIST *link_first_table_back(TABLE_LIST *tables, + TABLE_LIST *global_first, + TABLE_LIST *local_first); } LEX; |