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, 9 insertions, 18 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 305e3e44cbc..fae7eb8e7ff 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -27,6 +27,8 @@ class LEX_COLUMN;
YYSTYPE before including this file
*/
+#include "set_var.h"
+
#ifdef MYSQL_YACC
#define LEX_YYSTYPE void *
#else
@@ -71,7 +73,8 @@ enum lex_states
STATE_OPERATOR_OR_IDENT, STATE_NUMBER_IDENT, STATE_INT_OR_REAL,
STATE_REAL_OR_POINT, STATE_BOOL, STATE_EOL, STATE_ESCAPE, STATE_LONG_COMMENT,
STATE_END_LONG_COMMENT, STATE_COLON, STATE_SET_VAR, STATE_USER_END,
- STATE_HOSTNAME, STATE_SKIP, STATE_USER_VARIABLE_DELIMITER
+ STATE_HOSTNAME, STATE_SKIP, STATE_USER_VARIABLE_DELIMITER, STATE_SYSTEM_VAR,
+ STATE_IDENT_OR_KEYWORD
};
typedef List<Item> List_item;
@@ -114,19 +117,6 @@ typedef struct st_select_lex
} SELECT_LEX;
-class Set_option :public Sql_alloc
-{
-public:
- const char *name;
- Item *item;
- uint name_length;
- bool type; /* 1 if global */
- Set_option(bool par_type, const char *par_name, uint length,
- Item *par_item)
- :name(par_name), item(par_item), name_length(length), type(par_type) {}
-};
-
-
/* The state of the lex parsing. This is saved in the THD struct */
typedef struct st_lex
@@ -147,22 +137,22 @@ typedef struct st_lex
List<Alter_drop> drop_list;
List<Alter_column> alter_list;
List<String> interval_list;
- List<st_lex_user> users_list;
+ List<LEX_USER> users_list;
List<LEX_COLUMN> columns;
List<Key> key_list;
List<create_field> create_list;
List<Item> *insert_list,field_list,value_list;
List<List_item> many_values;
- List<Set_option> option_list;
+ List<set_var_base> var_list;
SQL_LIST proc_list, auxilliary_table_list;
TYPELIB *interval;
create_field *last_field;
Item *default_value;
CONVERT *convert_set;
+ CONVERT *thd_convert_set; // Set with SET CHAR SET
LEX_USER *grant_user;
gptr yacc_yyss,yacc_yyvs;
THD *thd;
- struct system_variables *variable_values;
udf_func udf;
HA_CHECK_OPT check_opt; // check/repair options
HA_CREATE_INFO create_info;
@@ -176,10 +166,11 @@ typedef struct st_lex
enum enum_ha_read_modes ha_read_mode;
enum ha_rkey_function ha_rkey_mode;
enum enum_enable_or_disable alter_keys_onoff;
+ enum enum_var_type option_type;
uint grant,grant_tot_col,which_columns, union_option;
thr_lock_type lock_option;
bool drop_primary,drop_if_exists,local_file;
- bool in_comment,ignore_space,verbose,simple_alter, option_type;
+ bool in_comment,ignore_space,verbose,simple_alter;
uint slave_thd_opt;
} LEX;