summaryrefslogtreecommitdiff
path: root/sql/sql_lex.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_lex.h')
-rw-r--r--sql/sql_lex.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index d1aa2464210..0240f338da3 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -125,6 +125,7 @@ struct LEX_TYPE
#if MYSQL_LEX
#include "item_func.h" /* Cast_target used in sql_yacc.h */
#include "sql_get_diagnostics.h" /* Types used in sql_yacc.h */
+#include "sp_pcontext.h"
#include "sql_yacc.h"
#define LEX_YYSTYPE YYSTYPE *
#else
@@ -2380,7 +2381,10 @@ struct LEX: public Query_tables_list
/* Query Plan Footprint of a currently running select */
Explain_query *explain;
- char *length,*dec,*change;
+ // type information
+ char *length,*dec;
+ CHARSET_INFO *charset;
+
LEX_STRING name;
char *help_arg;
char *backup_dir; /* For RESTORE/BACKUP */
@@ -2389,18 +2393,15 @@ struct LEX: public Query_tables_list
String *wild; /* Wildcard in SHOW {something} LIKE 'wild'*/
sql_exchange *exchange;
select_result *result;
- Item *default_value, *on_update_value;
LEX_STRING comment, ident;
LEX_USER *grant_user;
XID *xid;
THD *thd;
- Virtual_column_info *vcol_info;
/* maintain a list of used plugins for this LEX */
DYNAMIC_ARRAY plugins;
plugin_ref plugins_static_buffer[INITIAL_LEX_PLUGIN_LIST_SIZE];
- CHARSET_INFO *charset;
bool text_string_is_7bit;
/** SELECT of CREATE VIEW statement */
@@ -2422,7 +2423,6 @@ struct LEX: public Query_tables_list
List<Key_part_spec> col_list;
List<Key_part_spec> ref_list;
- List<String> interval_list;
List<LEX_USER> users_list;
List<LEX_COLUMN> columns;
List<Item> *insert_list,field_list,value_list,update_list;
@@ -2512,7 +2512,6 @@ struct LEX: public Query_tables_list
uint profile_query_id;
uint profile_options;
- uint uint_geom_type;
uint grant, grant_tot_col, which_columns;
enum Foreign_key::fk_match_opt fk_match_option;
enum Foreign_key::fk_option fk_update_opt;
@@ -2623,9 +2622,17 @@ struct LEX: public Query_tables_list
};
/**
- Collects create options for Field and KEY
+ Collects create options for KEY
*/
- engine_option_value *option_list, *option_list_last;
+ engine_option_value *option_list;
+
+ /**
+ Helper pointer to the end of the list when parsing options for
+ LEX::create_info.option_list (for table)
+ LEX::last_field->option_list (for fields)
+ LEX::option_list (for indexes)
+ */
+ engine_option_value *option_list_last;
/**
During name resolution search only in the table list given by
@@ -2806,6 +2813,10 @@ struct LEX: public Query_tables_list
int print_explain(select_result_sink *output, uint8 explain_flags,
bool is_analyze, bool *printed_anything);
void restore_set_statement_var();
+
+ void init_last_field(Create_field *field, const char *name, CHARSET_INFO *cs);
+ void set_last_field_type(enum enum_field_types type);
+ bool set_bincmp(CHARSET_INFO *cs, bool bin);
};