diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 75440c5..af50807 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -34,7 +34,7 @@ #include "sql_optimizer.h" // JOIN #include -static int lex_one_token(void *arg, void *yythd); +static int lex_one_token(void *arg, THD *thd); /* We are using pointer to this variable for distinguishing between assignment @@ -906,9 +906,8 @@ bool consume_comment(Lex_input_stream *lip, int remaining_recursions_permitted) (which can't be followed by a signed number) */ -int MYSQLlex(void *arg, void *yythd) +int MYSQLlex(void *arg, THD *thd) { - THD *thd= (THD *)yythd; Lex_input_stream *lip= & thd->m_parser_state->m_lip; YYSTYPE *yylval=(YYSTYPE*) arg; int token; @@ -927,7 +926,7 @@ int MYSQLlex(void *arg, void *yythd) return token; } - token= lex_one_token(arg, yythd); + token= lex_one_token(arg, thd); switch(token) { case WITH: @@ -938,7 +937,7 @@ int MYSQLlex(void *arg, void *yythd) to transform the grammar into a LALR(1) grammar, which sql_yacc.yy can process. */ - token= lex_one_token(arg, yythd); + token= lex_one_token(arg, thd); switch(token) { case CUBE_SYM: lip->m_digest_psi= MYSQL_ADD_TOKEN(lip->m_digest_psi, WITH_CUBE_SYM, @@ -967,14 +966,13 @@ int MYSQLlex(void *arg, void *yythd) return token; } -int lex_one_token(void *arg, void *yythd) +int lex_one_token(void *arg, THD *thd) { reg1 uchar c= 0; bool comment_closed; int tokval, result_state; uint length; enum my_lex_states state; - THD *thd= (THD *)yythd; Lex_input_stream *lip= & thd->m_parser_state->m_lip; LEX *lex= thd->lex; YYSTYPE *yylval=(YYSTYPE*) arg; diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 42a5e77..602f52a 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -2857,7 +2857,7 @@ extern void lex_init(void); extern void lex_free(void); extern void lex_start(THD *thd); extern void lex_end(LEX *lex); -extern int MYSQLlex(void *arg, void *yythd); +extern int MYSQLlex(void *arg, THD *thd); extern void trim_whitespace(const CHARSET_INFO *cs, LEX_STRING *str); diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index c88dd69..fc30370 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -8575,7 +8575,7 @@ bool check_host_name(LEX_STRING *str) } -extern int MYSQLparse(void *thd); // from sql_yacc.cc +extern int MYSQLparse(THD *thd); // from sql_yacc.cc /** diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index e640073..f2c7bfb 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -22,21 +22,14 @@ */ %{ -/* thd is passed as an argument to yyparse(), and subsequently to yylex(). -** The type will be void*, so it must be cast to (THD*) when used. -** Use the YYTHD macro for this. -*/ -#define YYPARSE_PARAM yythd -#define YYLEX_PARAM yythd -#define YYTHD ((THD *)yythd) -#define YYLIP (& YYTHD->m_parser_state->m_lip) -#define YYPS (& YYTHD->m_parser_state->m_yacc) -#define YYCSCL YYTHD->variables.character_set_client +#define YYLIP (& thd->m_parser_state->m_lip) +#define YYPS (& thd->m_parser_state->m_yacc) +#define YYCSCL thd->variables.character_set_client #define MYSQL_YACC #define YYINITDEPTH 100 #define YYMAXDEPTH 3200 /* Because of 64K stack */ -#define Lex (YYTHD->lex) +#define Lex (thd->lex) #define Select Lex->current_select #include "sql_priv.h" #include "unireg.h" // REQUIRED: for other includes @@ -85,7 +78,7 @@ int yylex(void *yylval, void *yythd); ulong val= *(F); \ if (my_yyoverflow((B), (D), &val)) \ { \ - yyerror((char*) (A)); \ + yyerror(current_thd, (char*) (A)); \ return 2; \ } \ else \ @@ -97,7 +90,7 @@ int yylex(void *yylval, void *yythd); #define MYSQL_YYABORT \ do \ { \ - LEX::cleanup_lex_after_parse_error(YYTHD);\ + LEX::cleanup_lex_after_parse_error(thd); \ YYABORT; \ } while (0) @@ -183,10 +176,8 @@ void my_parse_error(const char *s) to abort from the parser. */ -void MYSQLerror(const char *s) +void MYSQLerror(THD *thd, const char *s) { - THD *thd= current_thd; - /* Restore the original LEX if it was replaced when parsing a stored procedure. We must ensure that a parsing error @@ -1024,7 +1015,10 @@ bool match_authorized_user(Security_context *ctx, LEX_USER *user) bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %} -%pure_parser /* We have threads */ +/* We have threads */ +%define api.pure +%parse-param { THD *thd } +%lex-param { THD *thd } /* Currently there are 161 shift/reduce conflicts. We should not introduce new conflicts any more. @@ -1972,7 +1966,6 @@ rule: <-- starts at col 1 query: END_OF_INPUT { - THD *thd= YYTHD; if (!thd->bootstrap && (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT))) { @@ -1986,7 +1979,7 @@ query: { Lex_input_stream *lip = YYLIP; - if ((YYTHD->client_capabilities & CLIENT_MULTI_QUERIES) && + if ((thd->client_capabilities & CLIENT_MULTI_QUERIES) && lip->multi_statements && ! lip->eof()) { @@ -2083,7 +2076,6 @@ statement: deallocate: deallocate_or_drop PREPARE_SYM ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_DEALLOCATE_PREPARE; lex->prepared_stmt_name= $3; @@ -2098,7 +2090,6 @@ deallocate_or_drop: prepare: PREPARE_SYM ident FROM prepare_src { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_PREPARE; lex->prepared_stmt_name= $2; @@ -2118,14 +2109,12 @@ prepare: prepare_src: TEXT_STRING_sys { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->prepared_stmt_code= $1; lex->prepared_stmt_code_is_varref= FALSE; } | '@' ident_or_text { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->prepared_stmt_code= $2; lex->prepared_stmt_code_is_varref= TRUE; @@ -2135,7 +2124,6 @@ prepare_src: execute: EXECUTE_SYM ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_EXECUTE; lex->prepared_stmt_name= $2; @@ -2245,7 +2233,7 @@ master_def: { Lex_input_stream *lip= YYLIP; const char *start= lip->get_tok_start(); - const char *msg= YYTHD->strmake(start, lip->get_ptr() - start); + const char *msg= thd->strmake(start, lip->get_ptr() - start); my_error(ER_MASTER_DELAY_VALUE_OUT_OF_RANGE, MYF(0), msg, MASTER_DELAY_MAX); } @@ -2305,7 +2293,7 @@ master_def: } if (Lex->mi.heartbeat_period > slave_net_timeout) { - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX, ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX)); } @@ -2313,7 +2301,7 @@ master_def: { if (Lex->mi.heartbeat_period != 0.0) { - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN, ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN)); Lex->mi.heartbeat_period= 0.0; @@ -2396,7 +2384,6 @@ master_file_def: create: CREATE opt_table_options TABLE_SYM opt_if_not_exists table_ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_CREATE_TABLE; if (!lex->select_lex.add_table_to_list(thd, $5, NULL, @@ -2422,7 +2409,6 @@ create: } create2 { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->current_select= &lex->select_lex; if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) && @@ -2431,7 +2417,7 @@ create: lex->create_info.db_type= lex->create_info.options & HA_LEX_CREATE_TMP_TABLE ? ha_default_temp_handlerton(thd) : ha_default_handlerton(thd); - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_WARN_USING_OTHER_HANDLER, ER(ER_WARN_USING_OTHER_HANDLER), ha_resolve_storage_engine_name(lex->create_info.db_type), @@ -2565,7 +2551,6 @@ server_option: event_tail: remember_name EVENT_SYM opt_if_not_exists sp_name { - THD *thd= YYTHD; LEX *lex=Lex; lex->stmt_definition_begin= $1; @@ -2632,7 +2617,7 @@ opt_ev_status: ev_starts: /* empty */ { - Item *item= new (YYTHD->mem_root) Item_func_now_local(0); + Item *item= new (thd->mem_root) Item_func_now_local(0); if (item == NULL) MYSQL_YYABORT; Lex->event_parse_data->item_starts= item; @@ -2682,7 +2667,6 @@ opt_ev_comment: ev_sql_stmt: { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -2725,7 +2709,6 @@ ev_sql_stmt: } ev_sql_stmt_inner { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_finish_parsing(thd); @@ -2779,11 +2762,10 @@ sp_name: $$= new sp_name($1, $3, true); if ($$ == NULL) MYSQL_YYABORT; - $$->init_qname(YYTHD); + $$->init_qname(thd); } | ident { - THD *thd= YYTHD; LEX *lex= thd->lex; LEX_STRING db; if (sp_check_name(&$1)) @@ -2853,7 +2835,7 @@ call: lex->sql_command= SQLCOM_CALL; lex->spname= $2; lex->value_list.empty(); - sp_add_used_routine(lex, YYTHD, $2, SP_TYPE_PROCEDURE); + sp_add_used_routine(lex, thd, $2, SP_TYPE_PROCEDURE); } opt_sp_cparam_list {} ; @@ -2914,7 +2896,6 @@ sp_init_param: sp_fdparam: ident sp_init_param type_with_opt_collate { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -2955,7 +2936,6 @@ sp_pdparams: sp_pdparam: sp_opt_inout sp_init_param ident type_with_opt_collate { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3031,7 +3011,6 @@ sp_decls: sp_decl: DECLARE_SYM sp_decl_idents { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3042,7 +3021,6 @@ sp_decl: type_with_opt_collate sp_opt_default { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3115,7 +3093,6 @@ sp_decl: } | DECLARE_SYM ident CONDITION_SYM FOR_SYM sp_cond { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3131,7 +3108,6 @@ sp_decl: } | DECLARE_SYM sp_handler_type HANDLER_SYM FOR_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -3171,7 +3147,6 @@ sp_decl: } sp_hcond_list sp_proc_stmt { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3205,7 +3180,6 @@ sp_decl: } | DECLARE_SYM ident CURSOR_SYM FOR_SYM { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -3214,7 +3188,6 @@ sp_decl: } select { - THD *thd= YYTHD; LEX *cursor_lex= Lex; sp_head *sp= cursor_lex->sphead; @@ -3319,7 +3292,7 @@ sp_cond: my_error(ER_WRONG_VALUE, MYF(0), "CONDITION", "0"); MYSQL_YYABORT; } - $$= new (YYTHD->mem_root) sp_condition_value($1); + $$= new (thd->mem_root) sp_condition_value($1); if ($$ == NULL) MYSQL_YYABORT; } @@ -3342,7 +3315,7 @@ sqlstate: my_error(ER_SP_BAD_SQLSTATE, MYF(0), $3.str); MYSQL_YYABORT; } - $$= new (YYTHD->mem_root) sp_condition_value($3.str); + $$= new (thd->mem_root) sp_condition_value($3.str); if ($$ == NULL) MYSQL_YYABORT; } @@ -3373,19 +3346,19 @@ sp_hcond: } | SQLWARNING_SYM /* SQLSTATEs 01??? */ { - $$= new (YYTHD->mem_root) sp_condition_value(sp_condition_value::WARNING); + $$= new (thd->mem_root) sp_condition_value(sp_condition_value::WARNING); if ($$ == NULL) MYSQL_YYABORT; } | not FOUND_SYM /* SQLSTATEs 02??? */ { - $$= new (YYTHD->mem_root) sp_condition_value(sp_condition_value::NOT_FOUND); + $$= new (thd->mem_root) sp_condition_value(sp_condition_value::NOT_FOUND); if ($$ == NULL) MYSQL_YYABORT; } | SQLEXCEPTION_SYM /* All other SQLSTATEs */ { - $$= new (YYTHD->mem_root) sp_condition_value(sp_condition_value::EXCEPTION); + $$= new (thd->mem_root) sp_condition_value(sp_condition_value::EXCEPTION); if ($$ == NULL) MYSQL_YYABORT; } @@ -3394,7 +3367,6 @@ sp_hcond: signal_stmt: SIGNAL_SYM signal_value opt_set_signal_information { - THD *thd= YYTHD; LEX *lex= thd->lex; Yacc_state *state= & thd->m_parser_state->m_yacc; @@ -3447,7 +3419,7 @@ opt_signal_value: opt_set_signal_information: /* empty */ { - YYTHD->m_parser_state->m_yacc.m_set_signal_info.clear(); + thd->m_parser_state->m_yacc.m_set_signal_info.clear(); } | SET signal_information_item_list ; @@ -3456,7 +3428,7 @@ signal_information_item_list: signal_condition_information_item_name EQ signal_allowed_expr { Set_signal_information *info; - info= & YYTHD->m_parser_state->m_yacc.m_set_signal_info; + info= &thd->m_parser_state->m_yacc.m_set_signal_info; int index= (int) $1; info->clear(); info->m_item[index]= $3; @@ -3465,7 +3437,7 @@ signal_information_item_list: signal_condition_information_item_name EQ signal_allowed_expr { Set_signal_information *info; - info= & YYTHD->m_parser_state->m_yacc.m_set_signal_info; + info= &thd->m_parser_state->m_yacc.m_set_signal_info; int index= (int) $3; if (info->m_item[index] != NULL) { @@ -3536,7 +3508,6 @@ signal_condition_information_item_name: resignal_stmt: RESIGNAL_SYM opt_signal_value opt_set_signal_information { - THD *thd= YYTHD; LEX *lex= thd->lex; Yacc_state *state= & thd->m_parser_state->m_yacc; @@ -3557,7 +3528,7 @@ get_diagnostics: info->set_which_da($2); Lex->sql_command= SQLCOM_GET_DIAGNOSTICS; - Lex->m_sql_cmd= new (YYTHD->mem_root) Sql_cmd_get_diagnostics(info); + Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_get_diagnostics(info); if (Lex->m_sql_cmd == NULL) MYSQL_YYABORT; @@ -3574,13 +3545,13 @@ which_area: diagnostics_information: statement_information { - $$= new (YYTHD->mem_root) Statement_information($1); + $$= new (thd->mem_root) Statement_information($1); if ($$ == NULL) MYSQL_YYABORT; } | CONDITION_SYM condition_number condition_information { - $$= new (YYTHD->mem_root) Condition_information($2, $3); + $$= new (thd->mem_root) Condition_information($2, $3); if ($$ == NULL) MYSQL_YYABORT; } @@ -3589,7 +3560,7 @@ diagnostics_information: statement_information: statement_information_item { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL || $$->push_back($1)) MYSQL_YYABORT; } @@ -3604,7 +3575,7 @@ statement_information: statement_information_item: simple_target_specification EQ statement_information_item_name { - $$= new (YYTHD->mem_root) Statement_information_item($3, $1); + $$= new (thd->mem_root) Statement_information_item($3, $1); if ($$ == NULL) MYSQL_YYABORT; } @@ -3612,7 +3583,6 @@ statement_information_item: simple_target_specification: ident { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; sp_head *sp= lex->sphead; @@ -3641,7 +3611,7 @@ simple_target_specification: } | '@' ident_or_text { - $$= new (YYTHD->mem_root) Item_func_get_user_var($2); + $$= new (thd->mem_root) Item_func_get_user_var($2); if ($$ == NULL) MYSQL_YYABORT; } @@ -3666,7 +3636,7 @@ condition_number: condition_information: condition_information_item { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL || $$->push_back($1)) MYSQL_YYABORT; } @@ -3681,7 +3651,7 @@ condition_information: condition_information_item: simple_target_specification EQ condition_information_item_name { - $$= new (YYTHD->mem_root) Condition_information_item($3, $1); + $$= new (thd->mem_root) Condition_information_item($3, $1); if ($$ == NULL) MYSQL_YYABORT; } @@ -3720,7 +3690,6 @@ sp_decl_idents: { /* NOTE: field definition is filled in sp_decl section. */ - THD *thd= YYTHD; LEX *lex= thd->lex; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3740,7 +3709,6 @@ sp_decl_idents: { /* NOTE: field definition is filled in sp_decl section. */ - THD *thd= YYTHD; LEX *lex= thd->lex; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3796,7 +3764,6 @@ sp_proc_stmt_if: sp_proc_stmt_statement: { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; sp_head *sp= lex->sphead; @@ -3806,7 +3773,6 @@ sp_proc_stmt_statement: } statement { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -3853,7 +3819,6 @@ sp_proc_stmt_statement: sp_proc_stmt_return: RETURN_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -3863,7 +3828,6 @@ sp_proc_stmt_return: } expr { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -3909,7 +3873,6 @@ sp_proc_stmt_return: sp_proc_stmt_unlabeled: { /* Unlabeled controls get a secret label. */ - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3932,7 +3895,6 @@ sp_proc_stmt_unlabeled: sp_proc_stmt_leave: LEAVE_SYM label_ident { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp = lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -3991,7 +3953,6 @@ sp_proc_stmt_leave: sp_proc_stmt_iterate: ITERATE_SYM label_ident { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4041,7 +4002,6 @@ sp_proc_stmt_iterate: sp_proc_stmt_open: OPEN_SYM ident { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4065,7 +4025,6 @@ sp_proc_stmt_open: sp_proc_stmt_fetch: FETCH_SYM sp_opt_fetch_noise ident INTO { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4091,7 +4050,6 @@ sp_proc_stmt_fetch: sp_proc_stmt_close: CLOSE_SYM ident { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4159,7 +4117,6 @@ sp_fetch_list: sp_if: { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -4168,7 +4125,6 @@ sp_if: } expr { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4204,7 +4160,6 @@ sp_if: } THEN_SYM sp_proc_stmts1 { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4246,7 +4201,6 @@ case_stmt_specification: simple_case_stmt: CASE_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -4257,7 +4211,6 @@ simple_case_stmt: } expr { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -4308,7 +4261,7 @@ simple_case_stmt: searched_case_stmt: CASE_SYM { - case_stmt_action_case(YYTHD); + case_stmt_action_case(thd); } searched_when_clause_list else_clause_opt @@ -4332,7 +4285,6 @@ searched_when_clause_list: simple_when_clause: WHEN_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -4343,7 +4295,6 @@ simple_when_clause: { /* Simple case: = */ - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4382,7 +4333,7 @@ simple_when_clause: THEN_SYM sp_proc_stmts1 { - if (case_stmt_action_then(YYTHD, Lex)) + if (case_stmt_action_then(thd, Lex)) MYSQL_YYABORT; } ; @@ -4390,7 +4341,6 @@ simple_when_clause: searched_when_clause: WHEN_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -4399,7 +4349,6 @@ searched_when_clause: } expr { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4435,7 +4384,7 @@ searched_when_clause: THEN_SYM sp_proc_stmts1 { - if (case_stmt_action_then(YYTHD, Lex)) + if (case_stmt_action_then(thd, Lex)) MYSQL_YYABORT; } ; @@ -4443,7 +4392,6 @@ searched_when_clause: else_clause_opt: /* empty */ { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4473,7 +4421,7 @@ sp_labeled_control: } else { - lab= pctx->push_label(YYTHD, $1, sp->instructions()); + lab= pctx->push_label(thd, $1, sp->instructions()); lab->type= sp_label::ITERATION; } } @@ -4515,7 +4463,7 @@ sp_labeled_block: MYSQL_YYABORT; } - lab= pctx->push_label(YYTHD, $1, sp->instructions()); + lab= pctx->push_label(thd, $1, sp->instructions()); lab->type= sp_label::BEGIN; } sp_block_content sp_opt_label @@ -4542,7 +4490,7 @@ sp_unlabeled_block: sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); sp_label *lab= - pctx->push_label(YYTHD, EMPTY_STR, sp->instructions()); + pctx->push_label(thd, EMPTY_STR, sp->instructions()); lab->type= sp_label::BEGIN; } @@ -4558,7 +4506,6 @@ sp_block_content: { /* QQ This is just a dummy for grouping declarations and statements together. No [[NOT] ATOMIC] yet, and we need to figure out how make it coexist with the existing BEGIN COMMIT/ROLLBACK. */ - THD *thd= YYTHD; LEX *lex= thd->lex; sp_pcontext *parent_pctx= lex->get_sp_current_parsing_ctx(); @@ -4571,7 +4518,6 @@ sp_block_content: sp_proc_stmts END { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4607,7 +4553,6 @@ sp_unlabeled_control: LOOP_SYM sp_proc_stmts1 END LOOP_SYM { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4622,7 +4567,6 @@ sp_unlabeled_control: } | WHILE_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -4631,7 +4575,6 @@ sp_unlabeled_control: } expr { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4669,7 +4612,6 @@ sp_unlabeled_control: sp_proc_stmts1 END WHILE_SYM { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -4685,7 +4627,6 @@ sp_unlabeled_control: } | REPEAT_SYM sp_proc_stmts1 UNTIL_SYM { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -4694,7 +4635,6 @@ sp_unlabeled_control: } expr { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -5147,7 +5087,6 @@ create2: create3 {} | LIKE table_ident { - THD *thd= YYTHD; TABLE_LIST *src_table; LEX *lex= thd->lex; @@ -5162,7 +5101,6 @@ create2: } | '(' LIKE table_ident ')' { - THD *thd= YYTHD; TABLE_LIST *src_table; LEX *lex= thd->lex; @@ -5763,7 +5701,7 @@ part_value_expr_item: my_parse_error(ER(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR)); MYSQL_YYABORT; } - if (part_info->add_column_list_value(YYTHD, part_expr)) + if (part_info->add_column_list_value(thd, part_expr)) { MYSQL_YYABORT; } @@ -6221,7 +6159,6 @@ default_collation: storage_engines: ident_or_text { - THD *thd= YYTHD; plugin_ref plugin= ha_resolve_by_name(thd, &$1, thd->lex->create_info.options & HA_LEX_CREATE_TMP_TABLE); @@ -6247,7 +6184,6 @@ storage_engines: known_storage_engines: ident_or_text { - THD *thd= YYTHD; LEX *lex= thd->lex; plugin_ref plugin= ha_resolve_by_name(thd, &$1, @@ -6483,7 +6419,7 @@ type: { /* Reset unsupported positive column width to default value */ Lex->length= NULL; - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_INVALID_YEAR_COLUMN_LENGTH, ER(ER_INVALID_YEAR_COLUMN_LENGTH), length); @@ -6497,7 +6433,7 @@ type: { $$= MYSQL_TYPE_TIME2; } | TIMESTAMP type_datetime_precision { - if (YYTHD->variables.sql_mode & MODE_MAXDB) + if (thd->variables.sql_mode & MODE_MAXDB) $$=MYSQL_TYPE_DATETIME2; else { @@ -6505,7 +6441,7 @@ type: Unlike other types TIMESTAMP fields are NOT NULL by default. This behavior is deprecated now. */ - if (!YYTHD->variables.explicit_defaults_for_timestamp) + if (!thd->variables.explicit_defaults_for_timestamp) Lex->type|= NOT_NULL_FLAG; $$=MYSQL_TYPE_TIMESTAMP2; @@ -6632,7 +6568,7 @@ int_type: real_type: REAL { - $$= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ? + $$= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ? MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE; } | DOUBLE_SYM @@ -6821,7 +6757,7 @@ type_with_opt_collate: now: NOW_SYM func_datetime_precision { - $$= new (YYTHD->mem_root) Item_func_now_local($2); + $$= new (thd->mem_root) Item_func_now_local($2); if ($$ == NULL) MYSQL_YYABORT; }; @@ -7301,7 +7237,6 @@ string_list: alter: ALTER opt_ignore TABLE_SYM table_ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->name.str= 0; lex->name.length= 0; @@ -7327,7 +7262,6 @@ alter: } alter_commands { - THD *thd= YYTHD; LEX *lex= thd->lex; if (!lex->m_sql_cmd) { @@ -7440,7 +7374,7 @@ alter: Event_parse_data. */ - if (!(Lex->event_parse_data= Event_parse_data::new_instance(YYTHD))) + if (!(Lex->event_parse_data= Event_parse_data::new_instance(thd))) MYSQL_YYABORT; Lex->event_parse_data->identifier= $4; @@ -7543,7 +7477,7 @@ alter_commands: /* empty */ | DISCARD TABLESPACE { - Lex->m_sql_cmd= new (YYTHD->mem_root) + Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_discard_import_tablespace( Sql_cmd_discard_import_tablespace::DISCARD_TABLESPACE); if (Lex->m_sql_cmd == NULL) @@ -7551,7 +7485,7 @@ alter_commands: } | IMPORT TABLESPACE { - Lex->m_sql_cmd= new (YYTHD->mem_root) + Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_discard_import_tablespace( Sql_cmd_discard_import_tablespace::IMPORT_TABLESPACE); if (Lex->m_sql_cmd == NULL) @@ -7585,7 +7519,6 @@ alter_commands: | OPTIMIZE PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->no_write_to_binlog= $3; lex->check_opt.init(); @@ -7599,7 +7532,6 @@ alter_commands: | ANALYZE_SYM PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->no_write_to_binlog= $3; lex->check_opt.init(); @@ -7611,7 +7543,6 @@ alter_commands: } | CHECK_SYM PARTITION_SYM all_or_alt_part_name_list { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->check_opt.init(); DBUG_ASSERT(!lex->m_sql_cmd); @@ -7624,7 +7555,6 @@ alter_commands: | REPAIR PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->no_write_to_binlog= $3; lex->check_opt.init(); @@ -7644,7 +7574,6 @@ alter_commands: } | TRUNCATE_SYM PARTITION_SYM all_or_alt_part_name_list { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->check_opt.init(); DBUG_ASSERT(!lex->m_sql_cmd); @@ -7657,7 +7586,6 @@ alter_commands: | EXCHANGE_SYM PARTITION_SYM alt_part_name_item WITH TABLE_SYM table_ident have_partitioning { - THD *thd= YYTHD; LEX *lex= thd->lex; size_t dummy; lex->select_lex.db=$6->db.str; @@ -7939,7 +7867,6 @@ alter_list_item: { if (!$4) { - THD *thd= YYTHD; $4= thd->variables.collation_database; } $5= $5 ? $5 : $4; @@ -8301,7 +8228,6 @@ repair: } table_list opt_mi_repair_type { - THD *thd= YYTHD; LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_repair_table(); @@ -8339,7 +8265,6 @@ analyze: } table_list { - THD *thd= YYTHD; LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_analyze_table(); @@ -8374,7 +8299,6 @@ check: } table_list opt_mi_check_type { - THD *thd= YYTHD; LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_check_table(); @@ -8415,7 +8339,6 @@ optimize: } table_list { - THD *thd= YYTHD; LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_optimize_table(); @@ -8500,7 +8423,7 @@ keycache_list: assign_to_keycache: table_ident cache_keys_spec { - if (!Select->add_table_to_list(YYTHD, $1, NULL, 0, TL_READ, + if (!Select->add_table_to_list(thd, $1, NULL, 0, TL_READ, MDL_SHARED_READ, Select->pop_index_hints())) MYSQL_YYABORT; @@ -8510,7 +8433,7 @@ assign_to_keycache: assign_to_keycache_parts: table_ident adm_partition cache_keys_spec { - if (!Select->add_table_to_list(YYTHD, $1, NULL, 0, TL_READ, + if (!Select->add_table_to_list(thd, $1, NULL, 0, TL_READ, MDL_SHARED_READ, Select->pop_index_hints())) MYSQL_YYABORT; @@ -8546,7 +8469,7 @@ preload_list: preload_keys: table_ident cache_keys_spec opt_ignore_leaves { - if (!Select->add_table_to_list(YYTHD, $1, NULL, $3, TL_READ, + if (!Select->add_table_to_list(thd, $1, NULL, $3, TL_READ, MDL_SHARED_READ, Select->pop_index_hints())) MYSQL_YYABORT; @@ -8556,7 +8479,7 @@ preload_keys: preload_keys_parts: table_ident adm_partition cache_keys_spec opt_ignore_leaves { - if (!Select->add_table_to_list(YYTHD, $1, NULL, $4, TL_READ, + if (!Select->add_table_to_list(thd, $1, NULL, $4, TL_READ, MDL_SHARED_READ, Select->pop_index_hints())) MYSQL_YYABORT; @@ -8573,7 +8496,7 @@ adm_partition: cache_keys_spec: { - Lex->select_lex.alloc_index_hints(YYTHD); + Lex->select_lex.alloc_index_hints(thd); Select->set_index_hint_type(INDEX_HINT_USE, old_mode ? INDEX_HINT_MASK_JOIN : @@ -8788,7 +8711,6 @@ select_item_list: | select_item | '*' { - THD *thd= YYTHD; Item *item= new (thd->mem_root) Item_field(&thd->lex->current_select->context, NULL, NULL, "*"); @@ -8803,14 +8725,11 @@ select_item_list: select_item: remember_name table_wild remember_end { - THD *thd= YYTHD; - if (add_item_to_list(thd, $2)) MYSQL_YYABORT; } | remember_name expr remember_end select_alias { - THD *thd= YYTHD; DBUG_ASSERT($1 < $3); if (add_item_to_list(thd, $2)) @@ -8905,7 +8824,7 @@ expr: else { /* X OR Y */ - $$ = new (YYTHD->mem_root) Item_cond_or($1, $3); + $$ = new (thd->mem_root) Item_cond_or($1, $3); if ($$ == NULL) MYSQL_YYABORT; } @@ -8913,7 +8832,7 @@ expr: | expr XOR expr %prec XOR { /* XOR is a proprietary extension */ - $$ = new (YYTHD->mem_root) Item_func_xor($1, $3); + $$ = new (thd->mem_root) Item_func_xor($1, $3); if ($$ == NULL) MYSQL_YYABORT; } @@ -8955,50 +8874,50 @@ expr: else { /* X AND Y */ - $$ = new (YYTHD->mem_root) Item_cond_and($1, $3); + $$ = new (thd->mem_root) Item_cond_and($1, $3); if ($$ == NULL) MYSQL_YYABORT; } } | NOT_SYM expr %prec NOT_SYM { - $$= negate_expression(YYTHD, $2); + $$= negate_expression(thd, $2); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS TRUE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_istrue($1); + $$= new (thd->mem_root) Item_func_istrue($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not TRUE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnottrue($1); + $$= new (thd->mem_root) Item_func_isnottrue($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS FALSE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isfalse($1); + $$= new (thd->mem_root) Item_func_isfalse($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not FALSE_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnotfalse($1); + $$= new (thd->mem_root) Item_func_isnotfalse($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS UNKNOWN_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnull($1); + $$= new (thd->mem_root) Item_func_isnull($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not UNKNOWN_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnotnull($1); + $$= new (thd->mem_root) Item_func_isnotnull($1); if ($$ == NULL) MYSQL_YYABORT; } @@ -9008,19 +8927,19 @@ expr: bool_pri: bool_pri IS NULL_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnull($1); + $$= new (thd->mem_root) Item_func_isnull($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri IS not NULL_SYM %prec IS { - $$= new (YYTHD->mem_root) Item_func_isnotnull($1); + $$= new (thd->mem_root) Item_func_isnotnull($1); if ($$ == NULL) MYSQL_YYABORT; } | bool_pri EQUAL_SYM predicate %prec EQUAL_SYM { - $$= new (YYTHD->mem_root) Item_func_equal($1,$3); + $$= new (thd->mem_root) Item_func_equal($1,$3); if ($$ == NULL) MYSQL_YYABORT; } @@ -9042,13 +8961,12 @@ bool_pri: predicate: bit_expr IN_SYM '(' subselect ')' { - $$= new (YYTHD->mem_root) Item_in_subselect($1, $4); + $$= new (thd->mem_root) Item_in_subselect($1, $4); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not IN_SYM '(' subselect ')' { - THD *thd= YYTHD; Item *item= new (thd->mem_root) Item_in_subselect($1, $5); if (item == NULL) MYSQL_YYABORT; @@ -9058,7 +8976,7 @@ predicate: } | bit_expr IN_SYM '(' expr ')' { - $$= handle_sql2003_note184_exception(YYTHD, $1, true, $4); + $$= handle_sql2003_note184_exception(thd, $1, true, $4); if ($$ == NULL) MYSQL_YYABORT; } @@ -9066,13 +8984,13 @@ predicate: { $6->push_front($4); $6->push_front($1); - $$= new (YYTHD->mem_root) Item_func_in(*$6); + $$= new (thd->mem_root) Item_func_in(*$6); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not IN_SYM '(' expr ')' { - $$= handle_sql2003_note184_exception(YYTHD, $1, false, $5); + $$= handle_sql2003_note184_exception(thd, $1, false, $5); if ($$ == NULL) MYSQL_YYABORT; } @@ -9080,7 +8998,7 @@ predicate: { $7->push_front($5); $7->push_front($1); - Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*$7); + Item_func_in *item = new (thd->mem_root) Item_func_in(*$7); if (item == NULL) MYSQL_YYABORT; item->negate(); @@ -9088,14 +9006,14 @@ predicate: } | bit_expr BETWEEN_SYM bit_expr AND_SYM predicate { - $$= new (YYTHD->mem_root) Item_func_between($1,$3,$5); + $$= new (thd->mem_root) Item_func_between($1,$3,$5); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not BETWEEN_SYM bit_expr AND_SYM predicate { Item_func_between *item; - item= new (YYTHD->mem_root) Item_func_between($1,$4,$6); + item= new (thd->mem_root) Item_func_between($1,$4,$6); if (item == NULL) MYSQL_YYABORT; item->negate(); @@ -9103,42 +9021,42 @@ predicate: } | bit_expr SOUNDS_SYM LIKE bit_expr { - Item *item1= new (YYTHD->mem_root) Item_func_soundex($1); - Item *item4= new (YYTHD->mem_root) Item_func_soundex($4); + Item *item1= new (thd->mem_root) Item_func_soundex($1); + Item *item4= new (thd->mem_root) Item_func_soundex($4); if ((item1 == NULL) || (item4 == NULL)) MYSQL_YYABORT; - $$= new (YYTHD->mem_root) Item_func_eq(item1, item4); + $$= new (thd->mem_root) Item_func_eq(item1, item4); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr LIKE simple_expr opt_escape { - $$= new (YYTHD->mem_root) Item_func_like($1,$3,$4,Lex->escape_used); + $$= new (thd->mem_root) Item_func_like($1,$3,$4,Lex->escape_used); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not LIKE simple_expr opt_escape { - Item *item= new (YYTHD->mem_root) Item_func_like($1,$4,$5, + Item *item= new (thd->mem_root) Item_func_like($1,$4,$5, Lex->escape_used); if (item == NULL) MYSQL_YYABORT; - $$= new (YYTHD->mem_root) Item_func_not(item); + $$= new (thd->mem_root) Item_func_not(item); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr REGEXP bit_expr { - $$= new (YYTHD->mem_root) Item_func_regex($1,$3); + $$= new (thd->mem_root) Item_func_regex($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr not REGEXP bit_expr { - Item *item= new (YYTHD->mem_root) Item_func_regex($1,$4); + Item *item= new (thd->mem_root) Item_func_regex($1,$4); if (item == NULL) MYSQL_YYABORT; - $$= negate_expression(YYTHD, item); + $$= negate_expression(thd, item); if ($$ == NULL) MYSQL_YYABORT; } @@ -9148,85 +9066,85 @@ predicate: bit_expr: bit_expr '|' bit_expr %prec '|' { - $$= new (YYTHD->mem_root) Item_func_bit_or($1,$3); + $$= new (thd->mem_root) Item_func_bit_or($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '&' bit_expr %prec '&' { - $$= new (YYTHD->mem_root) Item_func_bit_and($1,$3); + $$= new (thd->mem_root) Item_func_bit_and($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr SHIFT_LEFT bit_expr %prec SHIFT_LEFT { - $$= new (YYTHD->mem_root) Item_func_shift_left($1,$3); + $$= new (thd->mem_root) Item_func_shift_left($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr SHIFT_RIGHT bit_expr %prec SHIFT_RIGHT { - $$= new (YYTHD->mem_root) Item_func_shift_right($1,$3); + $$= new (thd->mem_root) Item_func_shift_right($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '+' bit_expr %prec '+' { - $$= new (YYTHD->mem_root) Item_func_plus($1,$3); + $$= new (thd->mem_root) Item_func_plus($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '-' bit_expr %prec '-' { - $$= new (YYTHD->mem_root) Item_func_minus($1,$3); + $$= new (thd->mem_root) Item_func_minus($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '+' INTERVAL_SYM expr interval %prec '+' { - $$= new (YYTHD->mem_root) Item_date_add_interval($1,$4,$5,0); + $$= new (thd->mem_root) Item_date_add_interval($1,$4,$5,0); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '-' INTERVAL_SYM expr interval %prec '-' { - $$= new (YYTHD->mem_root) Item_date_add_interval($1,$4,$5,1); + $$= new (thd->mem_root) Item_date_add_interval($1,$4,$5,1); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '*' bit_expr %prec '*' { - $$= new (YYTHD->mem_root) Item_func_mul($1,$3); + $$= new (thd->mem_root) Item_func_mul($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '/' bit_expr %prec '/' { - $$= new (YYTHD->mem_root) Item_func_div($1,$3); + $$= new (thd->mem_root) Item_func_div($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '%' bit_expr %prec '%' { - $$= new (YYTHD->mem_root) Item_func_mod($1,$3); + $$= new (thd->mem_root) Item_func_mod($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr DIV_SYM bit_expr %prec DIV_SYM { - $$= new (YYTHD->mem_root) Item_func_int_div($1,$3); + $$= new (thd->mem_root) Item_func_int_div($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr MOD_SYM bit_expr %prec MOD_SYM { - $$= new (YYTHD->mem_root) Item_func_mod($1,$3); + $$= new (thd->mem_root) Item_func_mod($1,$3); if ($$ == NULL) MYSQL_YYABORT; } | bit_expr '^' bit_expr { - $$= new (YYTHD->mem_root) Item_func_bit_xor($1,$3); + $$= new (thd->mem_root) Item_func_bit_xor($1,$3); if ($$ == NULL) MYSQL_YYABORT; } @@ -9275,7 +9193,6 @@ simple_expr: | function_call_conflict | simple_expr COLLATE_SYM ident_or_text %prec NEG { - THD *thd= YYTHD; Item *i1= new (thd->mem_root) Item_string($3.str, $3.length, thd->charset()); @@ -9291,7 +9208,7 @@ simple_expr: | sum_expr | simple_expr OR_OR_SYM simple_expr { - $$= new (YYTHD->mem_root) Item_func_concat($1, $3); + $$= new (thd->mem_root) Item_func_concat($1, $3); if ($$ == NULL) MYSQL_YYABORT; } @@ -9301,25 +9218,25 @@ simple_expr: } | '-' simple_expr %prec NEG { - $$= new (YYTHD->mem_root) Item_func_neg($2); + $$= new (thd->mem_root) Item_func_neg($2); if ($$ == NULL) MYSQL_YYABORT; } | '~' simple_expr %prec NEG { - $$= new (YYTHD->mem_root) Item_func_bit_neg($2); + $$= new (thd->mem_root) Item_func_bit_neg($2); if ($$ == NULL) MYSQL_YYABORT; } | not2 simple_expr %prec NEG { - $$= negate_expression(YYTHD, $2); + $$= negate_expression(thd, $2); if ($$ == NULL) MYSQL_YYABORT; } | '(' subselect ')' { - $$= new (YYTHD->mem_root) Item_singlerow_subselect($2); + $$= new (thd->mem_root) Item_singlerow_subselect($2); if ($$ == NULL) MYSQL_YYABORT; } @@ -9328,20 +9245,20 @@ simple_expr: | '(' expr ',' expr_list ')' { $4->push_front($2); - $$= new (YYTHD->mem_root) Item_row(*$4); + $$= new (thd->mem_root) Item_row(*$4); if ($$ == NULL) MYSQL_YYABORT; } | ROW_SYM '(' expr ',' expr_list ')' { $5->push_front($3); - $$= new (YYTHD->mem_root) Item_row(*$5); + $$= new (thd->mem_root) Item_row(*$5); if ($$ == NULL) MYSQL_YYABORT; } | EXISTS '(' subselect ')' { - $$= new (YYTHD->mem_root) Item_exists_subselect($3); + $$= new (thd->mem_root) Item_exists_subselect($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -9378,7 +9295,7 @@ simple_expr: type= MYSQL_TYPE_DATETIME; } if (type != MYSQL_TYPE_STRING) - $$= create_temporal_literal(YYTHD, + $$= create_temporal_literal(thd, str.ptr(), str.length(), system_charset_info, type, false); @@ -9389,7 +9306,7 @@ simple_expr: | MATCH ident_list_arg AGAINST '(' bit_expr fulltext_options ')' { $2->push_front($5); - Item_func_match *i1= new (YYTHD->mem_root) Item_func_match(*$2, $6); + Item_func_match *i1= new (thd->mem_root) Item_func_match(*$2, $6); if (i1 == NULL) MYSQL_YYABORT; Select->add_ftfunc_to_list(i1); @@ -9397,7 +9314,7 @@ simple_expr: } | BINARY simple_expr %prec NEG { - $$= create_func_cast(YYTHD, $2, ITEM_CAST_CHAR, NULL, NULL, + $$= create_func_cast(thd, $2, ITEM_CAST_CHAR, NULL, NULL, &my_charset_bin); if ($$ == NULL) MYSQL_YYABORT; @@ -9405,27 +9322,27 @@ simple_expr: | CAST_SYM '(' expr AS cast_type ')' { LEX *lex= Lex; - $$= create_func_cast(YYTHD, $3, $5, lex->length, lex->dec, + $$= create_func_cast(thd, $3, $5, lex->length, lex->dec, lex->charset); if ($$ == NULL) MYSQL_YYABORT; } | CASE_SYM opt_expr when_list opt_else END { - $$= new (YYTHD->mem_root) Item_func_case(* $3, $2, $4 ); + $$= new (thd->mem_root) Item_func_case(* $3, $2, $4 ); if ($$ == NULL) MYSQL_YYABORT; } | CONVERT_SYM '(' expr ',' cast_type ')' { - $$= create_func_cast(YYTHD, $3, $5, Lex->length, Lex->dec, + $$= create_func_cast(thd, $3, $5, Lex->length, Lex->dec, Lex->charset); if ($$ == NULL) MYSQL_YYABORT; } | CONVERT_SYM '(' expr USING charset_name ')' { - $$= new (YYTHD->mem_root) Item_func_conv_charset($3,$5); + $$= new (thd->mem_root) Item_func_conv_charset($3,$5); if ($$ == NULL) MYSQL_YYABORT; } @@ -9438,14 +9355,14 @@ simple_expr: my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->m_name.ptr()); MYSQL_YYABORT; } - $$= new (YYTHD->mem_root) Item_default_value(Lex->current_context(), + $$= new (thd->mem_root) Item_default_value(Lex->current_context(), $3); if ($$ == NULL) MYSQL_YYABORT; } | VALUES '(' simple_ident_nospvar ')' { - $$= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(), + $$= new (thd->mem_root) Item_insert_value(Lex->current_context(), $3); if ($$ == NULL) MYSQL_YYABORT; @@ -9453,7 +9370,7 @@ simple_expr: | INTERVAL_SYM expr interval '+' expr %prec INTERVAL_SYM /* we cannot put interval before - */ { - $$= new (YYTHD->mem_root) Item_date_add_interval($5,$2,$3,0); + $$= new (thd->mem_root) Item_date_add_interval($5,$2,$3,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -9468,19 +9385,19 @@ simple_expr: function_call_keyword: CHAR_SYM '(' expr_list ')' { - $$= new (YYTHD->mem_root) Item_func_char(*$3); + $$= new (thd->mem_root) Item_func_char(*$3); if ($$ == NULL) MYSQL_YYABORT; } | CHAR_SYM '(' expr_list USING charset_name ')' { - $$= new (YYTHD->mem_root) Item_func_char(*$3, $5); + $$= new (thd->mem_root) Item_func_char(*$3, $5); if ($$ == NULL) MYSQL_YYABORT; } | CURRENT_USER optional_braces { - $$= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context()); + $$= new (thd->mem_root) Item_func_current_user(Lex->current_context()); if ($$ == NULL) MYSQL_YYABORT; Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); @@ -9488,31 +9405,30 @@ function_call_keyword: } | DATE_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_date_typecast($3); + $$= new (thd->mem_root) Item_date_typecast($3); if ($$ == NULL) MYSQL_YYABORT; } | DAY_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_dayofmonth($3); + $$= new (thd->mem_root) Item_func_dayofmonth($3); if ($$ == NULL) MYSQL_YYABORT; } | HOUR_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_hour($3); + $$= new (thd->mem_root) Item_func_hour($3); if ($$ == NULL) MYSQL_YYABORT; } | INSERT '(' expr ',' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_insert($3,$5,$7,$9); + $$= new (thd->mem_root) Item_func_insert($3,$5,$7,$9); if ($$ == NULL) MYSQL_YYABORT; } | INTERVAL_SYM '(' expr ',' expr ')' %prec INTERVAL_SYM { - THD *thd= YYTHD; List *list= new (thd->mem_root) List; if (list == NULL) MYSQL_YYABORT; @@ -9527,7 +9443,6 @@ function_call_keyword: } | INTERVAL_SYM '(' expr ',' expr ',' expr_list ')' %prec INTERVAL_SYM { - THD *thd= YYTHD; $7->push_front($5); $7->push_front($3); Item_row *item= new (thd->mem_root) Item_row(*$7); @@ -9539,103 +9454,103 @@ function_call_keyword: } | LEFT '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_left($3,$5); + $$= new (thd->mem_root) Item_func_left($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | MINUTE_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_minute($3); + $$= new (thd->mem_root) Item_func_minute($3); if ($$ == NULL) MYSQL_YYABORT; } | MONTH_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_month($3); + $$= new (thd->mem_root) Item_func_month($3); if ($$ == NULL) MYSQL_YYABORT; } | RIGHT '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_right($3,$5); + $$= new (thd->mem_root) Item_func_right($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | SECOND_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_second($3); + $$= new (thd->mem_root) Item_func_second($3); if ($$ == NULL) MYSQL_YYABORT; } | TIME_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_time_typecast($3); + $$= new (thd->mem_root) Item_time_typecast($3); if ($$ == NULL) MYSQL_YYABORT; } | TIMESTAMP '(' expr ')' { - $$= new (YYTHD->mem_root) Item_datetime_typecast($3); + $$= new (thd->mem_root) Item_datetime_typecast($3); if ($$ == NULL) MYSQL_YYABORT; } | TIMESTAMP '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_add_time($3, $5, 1, 0); + $$= new (thd->mem_root) Item_func_add_time($3, $5, 1, 0); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($3); + $$= new (thd->mem_root) Item_func_trim($3); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' LEADING expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_ltrim($6,$4); + $$= new (thd->mem_root) Item_func_ltrim($6,$4); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' TRAILING expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_rtrim($6,$4); + $$= new (thd->mem_root) Item_func_rtrim($6,$4); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' BOTH expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($6,$4); + $$= new (thd->mem_root) Item_func_trim($6,$4); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' LEADING FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_ltrim($5); + $$= new (thd->mem_root) Item_func_ltrim($5); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' TRAILING FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_rtrim($5); + $$= new (thd->mem_root) Item_func_rtrim($5); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' BOTH FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($5); + $$= new (thd->mem_root) Item_func_trim($5); if ($$ == NULL) MYSQL_YYABORT; } | TRIM '(' expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_trim($5,$3); + $$= new (thd->mem_root) Item_func_trim($5,$3); if ($$ == NULL) MYSQL_YYABORT; } | USER '(' ')' { - $$= new (YYTHD->mem_root) Item_func_user(); + $$= new (thd->mem_root) Item_func_user(); if ($$ == NULL) MYSQL_YYABORT; Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); @@ -9643,7 +9558,7 @@ function_call_keyword: } | YEAR_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_year($3); + $$= new (thd->mem_root) Item_func_year($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -9664,27 +9579,27 @@ function_call_keyword: function_call_nonkeyword: ADDDATE_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $5, + $$= new (thd->mem_root) Item_date_add_interval($3, $5, INTERVAL_DAY, 0); if ($$ == NULL) MYSQL_YYABORT; } | ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 0); + $$= new (thd->mem_root) Item_date_add_interval($3, $6, $7, 0); if ($$ == NULL) MYSQL_YYABORT; } | CURDATE optional_braces { - $$= new (YYTHD->mem_root) Item_func_curdate_local(); + $$= new (thd->mem_root) Item_func_curdate_local(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | CURTIME func_datetime_precision { - $$= new (YYTHD->mem_root) Item_func_curtime_local($2); + $$= new (thd->mem_root) Item_func_curtime_local($2); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; @@ -9692,26 +9607,26 @@ function_call_nonkeyword: | DATE_ADD_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM { - $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,0); + $$= new (thd->mem_root) Item_date_add_interval($3,$6,$7,0); if ($$ == NULL) MYSQL_YYABORT; } | DATE_SUB_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' %prec INTERVAL_SYM { - $$= new (YYTHD->mem_root) Item_date_add_interval($3,$6,$7,1); + $$= new (thd->mem_root) Item_date_add_interval($3,$6,$7,1); if ($$ == NULL) MYSQL_YYABORT; } | EXTRACT_SYM '(' interval FROM expr ')' { - $$=new (YYTHD->mem_root) Item_extract( $3, $5); + $$=new (thd->mem_root) Item_extract( $3, $5); if ($$ == NULL) MYSQL_YYABORT; } | GET_FORMAT '(' date_time_type ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_get_format($3, $5); + $$= new (thd->mem_root) Item_func_get_format($3, $5); if ($$ == NULL) MYSQL_YYABORT; } @@ -9722,44 +9637,44 @@ function_call_nonkeyword: } | POSITION_SYM '(' bit_expr IN_SYM expr ')' { - $$ = new (YYTHD->mem_root) Item_func_locate($5,$3); + $$ = new (thd->mem_root) Item_func_locate($5,$3); if ($$ == NULL) MYSQL_YYABORT; } | SUBDATE_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $5, + $$= new (thd->mem_root) Item_date_add_interval($3, $5, INTERVAL_DAY, 1); if ($$ == NULL) MYSQL_YYABORT; } | SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 1); + $$= new (thd->mem_root) Item_date_add_interval($3, $6, $7, 1); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); + $$= new (thd->mem_root) Item_func_substr($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5); + $$= new (thd->mem_root) Item_func_substr($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr FROM expr FOR_SYM expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); + $$= new (thd->mem_root) Item_func_substr($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | SUBSTRING '(' expr FROM expr ')' { - $$= new (YYTHD->mem_root) Item_func_substr($3,$5); + $$= new (thd->mem_root) Item_func_substr($3,$5); if ($$ == NULL) MYSQL_YYABORT; } @@ -9774,42 +9689,42 @@ function_call_nonkeyword: */ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); if (global_system_variables.sysdate_is_now == 0) - $$= new (YYTHD->mem_root) Item_func_sysdate_local($2); + $$= new (thd->mem_root) Item_func_sysdate_local($2); else - $$= new (YYTHD->mem_root) Item_func_now_local($2); + $$= new (thd->mem_root) Item_func_now_local($2); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | TIMESTAMP_ADD '(' interval_time_stamp ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_date_add_interval($7,$5,$3,0); + $$= new (thd->mem_root) Item_date_add_interval($7,$5,$3,0); if ($$ == NULL) MYSQL_YYABORT; } | TIMESTAMP_DIFF '(' interval_time_stamp ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_timestamp_diff($5,$7,$3); + $$= new (thd->mem_root) Item_func_timestamp_diff($5,$7,$3); if ($$ == NULL) MYSQL_YYABORT; } | UTC_DATE_SYM optional_braces { - $$= new (YYTHD->mem_root) Item_func_curdate_utc(); + $$= new (thd->mem_root) Item_func_curdate_utc(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | UTC_TIME_SYM func_datetime_precision { - $$= new (YYTHD->mem_root) Item_func_curtime_utc($2); + $$= new (thd->mem_root) Item_func_curtime_utc($2); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | UTC_TIMESTAMP_SYM func_datetime_precision { - $$= new (YYTHD->mem_root) Item_func_now_utc($2); + $$= new (thd->mem_root) Item_func_now_utc($2); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; @@ -9824,75 +9739,74 @@ function_call_nonkeyword: function_call_conflict: ASCII_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_ascii($3); + $$= new (thd->mem_root) Item_func_ascii($3); if ($$ == NULL) MYSQL_YYABORT; } | CHARSET '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_charset($3); + $$= new (thd->mem_root) Item_func_charset($3); if ($$ == NULL) MYSQL_YYABORT; } | COALESCE '(' expr_list ')' { - $$= new (YYTHD->mem_root) Item_func_coalesce(* $3); + $$= new (thd->mem_root) Item_func_coalesce(* $3); if ($$ == NULL) MYSQL_YYABORT; } | COLLATION_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_collation($3); + $$= new (thd->mem_root) Item_func_collation($3); if ($$ == NULL) MYSQL_YYABORT; } | DATABASE '(' ')' { - $$= new (YYTHD->mem_root) Item_func_database(); + $$= new (thd->mem_root) Item_func_database(); if ($$ == NULL) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } | IF '(' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_if($3,$5,$7); + $$= new (thd->mem_root) Item_func_if($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | FORMAT_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_format($3, $5); + $$= new (thd->mem_root) Item_func_format($3, $5); if ($$ == NULL) MYSQL_YYABORT; } | FORMAT_SYM '(' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_format($3, $5, $7); + $$= new (thd->mem_root) Item_func_format($3, $5, $7); if ($$ == NULL) MYSQL_YYABORT; } | MICROSECOND_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_microsecond($3); + $$= new (thd->mem_root) Item_func_microsecond($3); if ($$ == NULL) MYSQL_YYABORT; } | MOD_SYM '(' expr ',' expr ')' { - $$ = new (YYTHD->mem_root) Item_func_mod($3, $5); + $$ = new (thd->mem_root) Item_func_mod($3, $5); if ($$ == NULL) MYSQL_YYABORT; } | OLD_PASSWORD '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_old_password($3); + $$= new (thd->mem_root) Item_func_old_password($3); Lex->contains_plaintext_password= true; if ($$ == NULL) MYSQL_YYABORT; } | PASSWORD '(' expr ')' { - THD *thd= YYTHD; Item* i1; Lex->contains_plaintext_password= true; if (thd->variables.old_passwords == 1) @@ -9905,31 +9819,31 @@ function_call_conflict: } | QUARTER_SYM '(' expr ')' { - $$ = new (YYTHD->mem_root) Item_func_quarter($3); + $$ = new (thd->mem_root) Item_func_quarter($3); if ($$ == NULL) MYSQL_YYABORT; } | REPEAT_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_repeat($3,$5); + $$= new (thd->mem_root) Item_func_repeat($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | REPLACE '(' expr ',' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_replace($3,$5,$7); + $$= new (thd->mem_root) Item_func_replace($3,$5,$7); if ($$ == NULL) MYSQL_YYABORT; } | REVERSE_SYM '(' expr ')' { - $$= new (YYTHD->mem_root) Item_func_reverse($3); + $$= new (thd->mem_root) Item_func_reverse($3); if ($$ == NULL) MYSQL_YYABORT; } | ROW_COUNT_SYM '(' ')' { - $$= new (YYTHD->mem_root) Item_func_row_count(); + $$= new (thd->mem_root) Item_func_row_count(); if ($$ == NULL) MYSQL_YYABORT; Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); @@ -9937,13 +9851,12 @@ function_call_conflict: } | TRUNCATE_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_round($3,$5,1); + $$= new (thd->mem_root) Item_func_round($3,$5,1); if ($$ == NULL) MYSQL_YYABORT; } | WEEK_SYM '(' expr ')' { - THD *thd= YYTHD; Item *i1= new (thd->mem_root) Item_int(NAME_STRING("0"), thd->variables.default_week_format, 1); @@ -9955,19 +9868,19 @@ function_call_conflict: } | WEEK_SYM '(' expr ',' expr ')' { - $$= new (YYTHD->mem_root) Item_func_week($3,$5); + $$= new (thd->mem_root) Item_func_week($3,$5); if ($$ == NULL) MYSQL_YYABORT; } | WEIGHT_STRING_SYM '(' expr opt_ws_levels ')' { - $$= new (YYTHD->mem_root) Item_func_weight_string($3, 0, 0, $4); + $$= new (thd->mem_root) Item_func_weight_string($3, 0, 0, $4); if ($$ == NULL) MYSQL_YYABORT; } | WEIGHT_STRING_SYM '(' expr AS CHAR_SYM ws_nweights opt_ws_levels ')' { - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_func_weight_string($3, 0, $6, $7 | MY_STRXFRM_PAD_WITH_SPACE); if ($$ == NULL) @@ -9975,17 +9888,17 @@ function_call_conflict: } | WEIGHT_STRING_SYM '(' expr AS BINARY ws_nweights ')' { - Item *item= new (YYTHD->mem_root) Item_char_typecast($3, $6, &my_charset_bin); + Item *item= new (thd->mem_root) Item_char_typecast($3, $6, &my_charset_bin); if (item == NULL) MYSQL_YYABORT; - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_func_weight_string(item, 0, $6, MY_STRXFRM_PAD_WITH_SPACE); if ($$ == NULL) MYSQL_YYABORT; } | WEIGHT_STRING_SYM '(' expr ',' ulong_num ',' ulong_num ',' ulong_num ')' { - $$= new (YYTHD->mem_root) Item_func_weight_string($3, $5, $7, $9); + $$= new (thd->mem_root) Item_func_weight_string($3, $5, $7, $9); if ($$ == NULL) MYSQL_YYABORT; } @@ -10007,52 +9920,52 @@ function_call_conflict: geometry_function: CONTAINS_SYM '(' expr ',' expr ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_mbr_rel($3, $5, Item_func::SP_CONTAINS_FUNC)); } | GEOMETRYCOLLECTION '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_geometrycollection, Geometry::wkb_point)); } | LINESTRING '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_linestring, Geometry::wkb_point)); } | MULTILINESTRING '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_multilinestring, Geometry::wkb_linestring)); } | MULTIPOINT '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_multipoint, Geometry::wkb_point)); } | MULTIPOLYGON '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_multipolygon, Geometry::wkb_polygon)); } | POINT_SYM '(' expr ',' expr ')' { - $$= GEOM_NEW(YYTHD, Item_func_point($3,$5)); + $$= GEOM_NEW(thd, Item_func_point($3,$5)); } | POLYGON '(' expr_list ')' { - $$= GEOM_NEW(YYTHD, + $$= GEOM_NEW(thd, Item_func_spatial_collection(* $3, Geometry::wkb_polygon, Geometry::wkb_linestring)); @@ -10090,7 +10003,6 @@ function_call_generic: } opt_udf_expr_list ')' { - THD *thd= YYTHD; Create_func *builder; Item *item= NULL; @@ -10144,7 +10056,6 @@ function_call_generic: } | ident '.' ident '(' opt_expr_list ')' { - THD *thd= YYTHD; Create_qfunc *builder; Item *item= NULL; @@ -10206,7 +10117,7 @@ opt_udf_expr_list: udf_expr_list: udf_expr { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL) MYSQL_YYABORT; $$->push_back($1); @@ -10239,7 +10150,7 @@ udf_expr: */ else if ($2->type() != Item::FIELD_ITEM && $2->type() != Item::REF_ITEM /* For HAVING */ ) - $2->item_name.copy($1, (uint) ($3 - $1), YYTHD->charset()); + $2->item_name.copy($1, (uint) ($3 - $1), thd->charset()); $$= $2; } ; @@ -10247,46 +10158,46 @@ udf_expr: sum_expr: AVG_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_avg($3, FALSE); + $$= new (thd->mem_root) Item_sum_avg($3, FALSE); if ($$ == NULL) MYSQL_YYABORT; } | AVG_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_avg($4, TRUE); + $$= new (thd->mem_root) Item_sum_avg($4, TRUE); if ($$ == NULL) MYSQL_YYABORT; } | BIT_AND '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_and($3); + $$= new (thd->mem_root) Item_sum_and($3); if ($$ == NULL) MYSQL_YYABORT; } | BIT_OR '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_or($3); + $$= new (thd->mem_root) Item_sum_or($3); if ($$ == NULL) MYSQL_YYABORT; } | BIT_XOR '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_xor($3); + $$= new (thd->mem_root) Item_sum_xor($3); if ($$ == NULL) MYSQL_YYABORT; } | COUNT_SYM '(' opt_all '*' ')' { - Item *item= new (YYTHD->mem_root) Item_int((int32) 0L,1); + Item *item= new (thd->mem_root) Item_int((int32) 0L,1); if (item == NULL) MYSQL_YYABORT; - $$= new (YYTHD->mem_root) Item_sum_count(item); + $$= new (thd->mem_root) Item_sum_count(item); if ($$ == NULL) MYSQL_YYABORT; } | COUNT_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_count($3); + $$= new (thd->mem_root) Item_sum_count($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -10296,13 +10207,13 @@ sum_expr: { Select->in_sum_expr--; } ')' { - $$= new (YYTHD->mem_root) Item_sum_count(* $5); + $$= new (thd->mem_root) Item_sum_count(* $5); if ($$ == NULL) MYSQL_YYABORT; } | MIN_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_min($3); + $$= new (thd->mem_root) Item_sum_min($3); if ($$ == NULL) MYSQL_YYABORT; } @@ -10313,55 +10224,55 @@ sum_expr: */ | MIN_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_min($4); + $$= new (thd->mem_root) Item_sum_min($4); if ($$ == NULL) MYSQL_YYABORT; } | MAX_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_max($3); + $$= new (thd->mem_root) Item_sum_max($3); if ($$ == NULL) MYSQL_YYABORT; } | MAX_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_max($4); + $$= new (thd->mem_root) Item_sum_max($4); if ($$ == NULL) MYSQL_YYABORT; } | STD_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_std($3, 0); + $$= new (thd->mem_root) Item_sum_std($3, 0); if ($$ == NULL) MYSQL_YYABORT; } | VARIANCE_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_variance($3, 0); + $$= new (thd->mem_root) Item_sum_variance($3, 0); if ($$ == NULL) MYSQL_YYABORT; } | STDDEV_SAMP_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_std($3, 1); + $$= new (thd->mem_root) Item_sum_std($3, 1); if ($$ == NULL) MYSQL_YYABORT; } | VAR_SAMP_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_variance($3, 1); + $$= new (thd->mem_root) Item_sum_variance($3, 1); if ($$ == NULL) MYSQL_YYABORT; } | SUM_SYM '(' in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_sum($3, FALSE); + $$= new (thd->mem_root) Item_sum_sum($3, FALSE); if ($$ == NULL) MYSQL_YYABORT; } | SUM_SYM '(' DISTINCT in_sum_expr ')' { - $$= new (YYTHD->mem_root) Item_sum_sum($4, TRUE); + $$= new (thd->mem_root) Item_sum_sum($4, TRUE); if ($$ == NULL) MYSQL_YYABORT; } @@ -10373,7 +10284,7 @@ sum_expr: { SELECT_LEX *sel= Select; sel->in_sum_expr--; - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_func_group_concat(Lex->current_context(), $3, $5, sel->gorder_list, $7); if ($$ == NULL) @@ -10403,7 +10314,7 @@ variable_aux: { Item_func_set_user_var *item; $$= item= - new (YYTHD->mem_root) Item_func_set_user_var($1, $3, false); + new (thd->mem_root) Item_func_set_user_var($1, $3, false); if ($$ == NULL) MYSQL_YYABORT; LEX *lex= Lex; @@ -10412,7 +10323,7 @@ variable_aux: } | ident_or_text { - $$= new (YYTHD->mem_root) Item_func_get_user_var($1); + $$= new (thd->mem_root) Item_func_get_user_var($1); if ($$ == NULL) MYSQL_YYABORT; LEX *lex= Lex; @@ -10426,7 +10337,7 @@ variable_aux: my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } - if (!($$= get_system_var(YYTHD, $2, $3, $4))) + if (!($$= get_system_var(thd, $2, $3, $4))) MYSQL_YYABORT; if (!((Item_func_get_system_var*) $$)->is_written_to_binlog()) Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_VARIABLE); @@ -10441,7 +10352,7 @@ opt_distinct: opt_gconcat_separator: /* empty */ { - $$= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1); + $$= new (thd->mem_root) String(",", 1, &my_charset_latin1); if ($$ == NULL) MYSQL_YYABORT; } @@ -10468,9 +10379,9 @@ opt_gorder_clause: gorder_list: gorder_list ',' order_ident order_dir - { if (add_gorder_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; } + { if (add_gorder_to_list(thd, $3,(bool) $4)) MYSQL_YYABORT; } | order_ident order_dir - { if (add_gorder_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; } + { if (add_gorder_to_list(thd, $1,(bool) $2)) MYSQL_YYABORT; } ; in_sum_expr: @@ -10523,7 +10434,7 @@ opt_expr_list: expr_list: expr { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL) MYSQL_YYABORT; $$->push_back($1); @@ -10543,7 +10454,7 @@ ident_list_arg: ident_list: simple_ident { - $$= new (YYTHD->mem_root) List; + $$= new (thd->mem_root) List; if ($$ == NULL) MYSQL_YYABORT; $$->push_back($1); @@ -10643,7 +10554,7 @@ join_table: { MYSQL_YYABORT_UNLESS($1 && $3); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $3)) + if (push_new_name_resolution_context(thd, $1, $3)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -10658,7 +10569,7 @@ join_table: { MYSQL_YYABORT_UNLESS($1 && $3); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $3)) + if (push_new_name_resolution_context(thd, $1, $3)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -10688,7 +10599,7 @@ join_table: { MYSQL_YYABORT_UNLESS($1 && $5); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $5)) + if (push_new_name_resolution_context(thd, $1, $5)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -10724,7 +10635,7 @@ join_table: { MYSQL_YYABORT_UNLESS($1 && $5); /* Change the current name resolution context to a local context. */ - if (push_new_name_resolution_context(YYTHD, $1, $5)) + if (push_new_name_resolution_context(thd, $1, $5)) MYSQL_YYABORT; Select->parsing_place= IN_ON; } @@ -10795,7 +10706,7 @@ table_factor: } table_ident opt_use_partition opt_table_alias opt_key_definition { - if (!($$= Select->add_table_to_list(YYTHD, $2, $4, + if (!($$= Select->add_table_to_list(thd, $2, $4, Select->get_table_join_options(), YYPS->m_lock_type, YYPS->m_mdl_type, @@ -11104,7 +11015,7 @@ index_hints_list: opt_index_hints_list: /* empty */ - | { Select->alloc_index_hints(YYTHD); } index_hints_list + | { Select->alloc_index_hints(thd); } index_hints_list ; opt_key_definition: @@ -11113,15 +11024,15 @@ opt_key_definition: ; opt_key_usage_list: - /* empty */ { Select->add_index_hint(YYTHD, NULL, 0); } + /* empty */ { Select->add_index_hint(thd, NULL, 0); } | key_usage_list {} ; key_usage_element: ident - { Select->add_index_hint(YYTHD, $1.str, $1.length); } + { Select->add_index_hint(thd, $1.str, $1.length); } | PRIMARY_SYM - { Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); } + { Select->add_index_hint(thd, (char *)"PRIMARY", 7); } ; key_usage_list: @@ -11134,7 +11045,7 @@ using_list: { if (!($$= new List)) MYSQL_YYABORT; - String *s= new (YYTHD->mem_root) String((const char *) $1.str, + String *s= new (thd->mem_root) String((const char *) $1.str, $1.length, system_charset_info); if (s == NULL) @@ -11143,7 +11054,7 @@ using_list: } | using_list ',' ident { - String *s= new (YYTHD->mem_root) String((const char *) $3.str, + String *s= new (thd->mem_root) String((const char *) $3.str, $3.length, system_charset_info); if (s == NULL) @@ -11248,7 +11159,6 @@ opt_escape: } | /* empty */ { - THD *thd= YYTHD; Lex->escape_used= FALSE; $$= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ? new (thd->mem_root) Item_string("", 0, &my_charset_latin1) : @@ -11269,9 +11179,9 @@ group_clause: group_list: group_list ',' order_ident order_dir - { if (add_group_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; } + { if (add_group_to_list(thd, $3,(bool) $4)) MYSQL_YYABORT; } | order_ident order_dir - { if (add_group_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; } + { if (add_group_to_list(thd, $1,(bool) $2)) MYSQL_YYABORT; } ; olap_opt: @@ -11338,7 +11248,6 @@ alter_order_list: alter_order_item: simple_ident_nospvar order_dir { - THD *thd= YYTHD; bool ascending= ($2 == 1) ? true : false; if (add_order_to_list(thd, $1, ascending)) MYSQL_YYABORT; @@ -11391,9 +11300,9 @@ order_clause: order_list: order_list ',' order_ident order_dir - { if (add_order_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; } + { if (add_order_to_list(thd, $3,(bool) $4)) MYSQL_YYABORT; } | order_ident order_dir - { if (add_order_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; } + { if (add_order_to_list(thd, $1,(bool) $2)) MYSQL_YYABORT; } ; order_dir: @@ -11456,7 +11365,6 @@ limit_options: limit_option: ident { - THD *thd= YYTHD; LEX *lex= Lex; Lex_input_stream *lip= YYLIP; sp_head *sp= lex->sphead; @@ -11487,19 +11395,19 @@ limit_option: } | ULONGLONG_NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | LONG_NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } @@ -11801,7 +11709,6 @@ drop: } | DROP FUNCTION_SYM if_exists ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_name *spname; if ($4.str && @@ -11822,7 +11729,6 @@ drop: } | DROP FUNCTION_SYM if_exists ident { - THD *thd= YYTHD; LEX *lex= thd->lex; LEX_STRING db= {0, 0}; sp_name *spname; @@ -11907,7 +11813,7 @@ table_list: table_name: table_ident { - if (!Select->add_table_to_list(YYTHD, $1, NULL, + if (!Select->add_table_to_list(thd, $1, NULL, TL_OPTION_UPDATING, YYPS->m_lock_type, YYPS->m_mdl_type)) @@ -11918,7 +11824,7 @@ table_name: table_name_with_opt_use_partition: table_ident opt_use_partition { - if (!Select->add_table_to_list(YYTHD, $1, NULL, + if (!Select->add_table_to_list(thd, $1, NULL, TL_OPTION_UPDATING, YYPS->m_lock_type, YYPS->m_mdl_type, @@ -11936,7 +11842,7 @@ table_alias_ref_list: table_alias_ref: table_ident_opt_wild { - if (!Select->add_table_to_list(YYTHD, $1, NULL, + if (!Select->add_table_to_list(thd, $1, NULL, TL_OPTION_UPDATING | TL_OPTION_ALIAS, YYPS->m_lock_type, YYPS->m_mdl_type)) @@ -12025,12 +11931,12 @@ insert_lock_option: | DELAYED_SYM { Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() - - YYTHD->query()); + thd->query()); Lex->keyword_delayed_end_offset= Lex->keyword_delayed_begin_offset + YYLIP->yyLength() + 1; $$= TL_WRITE_DELAYED; - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX), "INSERT DELAYED", "INSERT"); @@ -12043,12 +11949,12 @@ replace_lock_option: | DELAYED_SYM { Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() - - YYTHD->query()); + thd->query()); Lex->keyword_delayed_end_offset= Lex->keyword_delayed_begin_offset + YYLIP->yyLength() + 1; $$= TL_WRITE_DELAYED; - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX), "REPLACE DELAYED", "REPLACE"); @@ -12165,7 +12071,7 @@ expr_or_default: expr { $$= $1;} | DEFAULT { - $$= new (YYTHD->mem_root) Item_default_value(Lex->current_context()); + $$= new (thd->mem_root) Item_default_value(Lex->current_context()); if ($$ == NULL) MYSQL_YYABORT; } @@ -12218,7 +12124,7 @@ update_list: update_elem: simple_ident_nospvar equal expr_or_default { - if (add_item_to_list(YYTHD, $1) || add_value_to_list(YYTHD, $3)) + if (add_item_to_list(thd, $1) || add_value_to_list(thd, $3)) MYSQL_YYABORT; } ; @@ -12263,7 +12169,7 @@ delete: single_multi: FROM table_ident opt_use_partition { - if (!Select->add_table_to_list(YYTHD, $2, NULL, TL_OPTION_UPDATING, + if (!Select->add_table_to_list(thd, $2, NULL, TL_OPTION_UPDATING, YYPS->m_lock_type, YYPS->m_mdl_type, NULL, @@ -12309,7 +12215,7 @@ table_wild_one: Table_ident *ti= new Table_ident($1); if (ti == NULL) MYSQL_YYABORT; - if (!Select->add_table_to_list(YYTHD, + if (!Select->add_table_to_list(thd, ti, NULL, TL_OPTION_UPDATING | TL_OPTION_ALIAS, @@ -12319,10 +12225,10 @@ table_wild_one: } | ident '.' ident opt_wild { - Table_ident *ti= new Table_ident(YYTHD, $1, $3, 0); + Table_ident *ti= new Table_ident(thd, $1, $3, 0); if (ti == NULL) MYSQL_YYABORT; - if (!Select->add_table_to_list(YYTHD, + if (!Select->add_table_to_list(thd, ti, NULL, TL_OPTION_UPDATING | TL_OPTION_ALIAS, @@ -12362,7 +12268,6 @@ truncate: } table_name { - THD *thd= YYTHD; LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_truncate_table(); @@ -12456,7 +12361,7 @@ show_param: { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_DATABASES; - if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA)) + if (prepare_schema_table(thd, lex, 0, SCH_SCHEMATA)) MYSQL_YYABORT; } | opt_full TABLES opt_db wild_and_where @@ -12464,7 +12369,7 @@ show_param: LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLES; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_NAMES)) + if (prepare_schema_table(thd, lex, 0, SCH_TABLE_NAMES)) MYSQL_YYABORT; } | opt_full TRIGGERS_SYM opt_db wild_and_where @@ -12472,7 +12377,7 @@ show_param: LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TRIGGERS; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_TRIGGERS)) + if (prepare_schema_table(thd, lex, 0, SCH_TRIGGERS)) MYSQL_YYABORT; } | EVENTS_SYM opt_db wild_and_where @@ -12480,7 +12385,7 @@ show_param: LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_EVENTS; lex->select_lex.db= $2; - if (prepare_schema_table(YYTHD, lex, 0, SCH_EVENTS)) + if (prepare_schema_table(thd, lex, 0, SCH_EVENTS)) MYSQL_YYABORT; } | TABLE_SYM STATUS_SYM opt_db wild_and_where @@ -12488,7 +12393,7 @@ show_param: LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLE_STATUS; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLES)) + if (prepare_schema_table(thd, lex, 0, SCH_TABLES)) MYSQL_YYABORT; } | OPEN_SYM TABLES opt_db wild_and_where @@ -12496,14 +12401,14 @@ show_param: LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; lex->select_lex.db= $3; - if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES)) + if (prepare_schema_table(thd, lex, 0, SCH_OPEN_TABLES)) MYSQL_YYABORT; } | PLUGINS_SYM { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PLUGINS; - if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS)) + if (prepare_schema_table(thd, lex, 0, SCH_PLUGINS)) MYSQL_YYABORT; } | ENGINE_SYM known_storage_engines show_engine_param @@ -12516,7 +12421,7 @@ show_param: lex->sql_command= SQLCOM_SHOW_FIELDS; if ($5) $4->change_db($5); - if (prepare_schema_table(YYTHD, lex, $4, SCH_COLUMNS)) + if (prepare_schema_table(thd, lex, $4, SCH_COLUMNS)) MYSQL_YYABORT; } | master_or_binary LOGS_SYM @@ -12543,14 +12448,14 @@ show_param: lex->sql_command= SQLCOM_SHOW_KEYS; if ($4) $3->change_db($4); - if (prepare_schema_table(YYTHD, lex, $3, SCH_STATISTICS)) + if (prepare_schema_table(thd, lex, $3, SCH_STATISTICS)) MYSQL_YYABORT; } | opt_storage ENGINES_SYM { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; - if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES)) + if (prepare_schema_table(thd, lex, 0, SCH_ENGINES)) MYSQL_YYABORT; } | PRIVILEGES @@ -12568,7 +12473,7 @@ show_param: { Lex->sql_command = SQLCOM_SHOW_ERRORS;} | PROFILES_SYM { - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX), "SHOW PROFILES", "Performance Schema"); @@ -12576,13 +12481,13 @@ show_param: } | PROFILE_SYM opt_profile_defs opt_profile_args opt_limit_clause_init { - push_warning_printf(YYTHD, Sql_condition::WARN_LEVEL_WARN, + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX), "SHOW PROFILE", "Performance Schema"); LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PROFILE; - if (prepare_schema_table(YYTHD, lex, NULL, SCH_PROFILES) != 0) + if (prepare_schema_table(thd, lex, NULL, SCH_PROFILES) != 0) YYABORT; } | opt_var_type STATUS_SYM wild_and_where @@ -12590,7 +12495,7 @@ show_param: LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS; lex->option_type= $1; - if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS)) + if (prepare_schema_table(thd, lex, 0, SCH_STATUS)) MYSQL_YYABORT; } | opt_full PROCESSLIST_SYM @@ -12600,21 +12505,21 @@ show_param: LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_VARIABLES; lex->option_type= $1; - if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES)) + if (prepare_schema_table(thd, lex, 0, SCH_VARIABLES)) MYSQL_YYABORT; } | charset wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CHARSETS; - if (prepare_schema_table(YYTHD, lex, 0, SCH_CHARSETS)) + if (prepare_schema_table(thd, lex, 0, SCH_CHARSETS)) MYSQL_YYABORT; } | COLLATION_SYM wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_COLLATIONS; - if (prepare_schema_table(YYTHD, lex, 0, SCH_COLLATIONS)) + if (prepare_schema_table(thd, lex, 0, SCH_COLLATIONS)) MYSQL_YYABORT; } | GRANTS @@ -12644,7 +12549,7 @@ show_param: { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; - if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL,0)) + if (!lex->select_lex.add_table_to_list(thd, $3, NULL,0)) MYSQL_YYABORT; lex->only_view= 0; lex->create_info.storage_media= HA_SM_DEFAULT; @@ -12653,7 +12558,7 @@ show_param: { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; - if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL, 0)) + if (!lex->select_lex.add_table_to_list(thd, $3, NULL, 0)) MYSQL_YYABORT; lex->only_view= 1; } @@ -12674,35 +12579,35 @@ show_param: { LEX *lex= Lex; Lex->sql_command= SQLCOM_SELECT; - if (prepare_schema_table(YYTHD, lex, 0, SCH_CLIENT_STATS)) + if (prepare_schema_table(thd, lex, 0, SCH_CLIENT_STATS)) MYSQL_YYABORT; } | USER_STATS_SYM wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SELECT; - if (prepare_schema_table(YYTHD, lex, 0, SCH_USER_STATS)) + if (prepare_schema_table(thd, lex, 0, SCH_USER_STATS)) MYSQL_YYABORT; } | THREAD_STATS_SYM wild_and_where { LEX *lex= Lex; Lex->sql_command= SQLCOM_SELECT; - if (prepare_schema_table(YYTHD, lex, 0, SCH_THREAD_STATS)) + if (prepare_schema_table(thd, lex, 0, SCH_THREAD_STATS)) MYSQL_YYABORT; } | TABLE_STATS_SYM wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SELECT; - if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_STATS)) + if (prepare_schema_table(thd, lex, 0, SCH_TABLE_STATS)) MYSQL_YYABORT; } | INDEX_STATS_SYM wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SELECT; - if (prepare_schema_table(YYTHD, lex, 0, SCH_INDEX_STATS)) + if (prepare_schema_table(thd, lex, 0, SCH_INDEX_STATS)) MYSQL_YYABORT; } | CREATE PROCEDURE_SYM sp_name @@ -12729,14 +12634,14 @@ show_param: { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PROC; - if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES)) + if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES)) MYSQL_YYABORT; } | FUNCTION_SYM STATUS_SYM wild_and_where { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_FUNC; - if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES)) + if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES)) MYSQL_YYABORT; } | PROCEDURE_SYM CODE_SYM sp_name @@ -12804,7 +12709,7 @@ wild_and_where: /* empty */ | LIKE TEXT_STRING_sys { - Lex->wild= new (YYTHD->mem_root) String($2.str, $2.length, + Lex->wild= new (thd->mem_root) String($2.str, $2.length, system_charset_info); if (Lex->wild == NULL) MYSQL_YYABORT; @@ -12827,7 +12732,7 @@ describe: lex->sql_command= SQLCOM_SHOW_FIELDS; lex->select_lex.db= 0; lex->verbose= 0; - if (prepare_schema_table(YYTHD, lex, $2, SCH_COLUMNS)) + if (prepare_schema_table(thd, lex, $2, SCH_COLUMNS)) MYSQL_YYABORT; } opt_describe_column @@ -12897,7 +12802,7 @@ opt_describe_column: | text_string { Lex->wild= $1; } | ident { - Lex->wild= new (YYTHD->mem_root) String((const char*) $1.str, + Lex->wild= new (thd->mem_root) String((const char*) $1.str, $1.length, system_charset_info); if (Lex->wild == NULL) @@ -13137,7 +13042,6 @@ use: load: LOAD data_or_xml { - THD *thd= YYTHD; LEX *lex= thd->lex; if (lex->sphead) @@ -13160,7 +13064,7 @@ load: opt_duplicate INTO TABLE_SYM table_ident opt_use_partition { LEX *lex=Lex; - if (!Select->add_table_to_list(YYTHD, $12, NULL, TL_OPTION_UPDATING, + if (!Select->add_table_to_list(thd, $12, NULL, TL_OPTION_UPDATING, $4, MDL_SHARED_WRITE, NULL, $13)) MYSQL_YYABORT; lex->field_list.empty(); @@ -13303,7 +13207,7 @@ field_or_var: simple_ident_nospvar {$$= $1;} | '@' ident_or_text { - $$= new (YYTHD->mem_root) Item_user_var_as_out_param($2); + $$= new (thd->mem_root) Item_user_var_as_out_param($2); if ($$ == NULL) MYSQL_YYABORT; } @@ -13324,16 +13228,16 @@ load_data_set_elem: { LEX *lex= Lex; uint length= (uint) ($5 - $3); - String *val= new (YYTHD->mem_root) String($3, + String *val= new (thd->mem_root) String($3, length, - YYTHD->charset()); + thd->charset()); if (val == NULL) MYSQL_YYABORT; if (lex->update_list.push_back($1) || lex->value_list.push_back($4) || lex->load_set_str_list.push_back(val)) MYSQL_YYABORT; - $4->item_name.copy_no_truncate($3, length, YYTHD->charset()); + $4->item_name.copy_no_truncate($3, length, thd->charset()); } ; @@ -13343,7 +13247,6 @@ text_literal: TEXT_STRING { LEX_STRING tmp; - THD *thd= YYTHD; const CHARSET_INFO *cs_con= thd->variables.collation_connection; const CHARSET_INFO *cs_cli= thd->variables.character_set_client; uint repertoire= thd->lex->text_string_is_7bit && @@ -13369,7 +13272,7 @@ text_literal: uint repertoire= Lex->text_string_is_7bit ? MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30; DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info)); - $$= new (YYTHD->mem_root) Item_string($1.str, $1.length, + $$= new (thd->mem_root) Item_string($1.str, $1.length, national_charset_info, DERIVATION_COERCIBLE, repertoire); @@ -13378,7 +13281,7 @@ text_literal: } | UNDERSCORE_CHARSET TEXT_STRING { - Item_string *str= new (YYTHD->mem_root) Item_string($2.str, + Item_string *str= new (thd->mem_root) Item_string($2.str, $2.length, $1); if (str == NULL) MYSQL_YYABORT; @@ -13397,7 +13300,7 @@ text_literal: If the string has been pure ASCII so far, check the new part. */ - const CHARSET_INFO *cs= YYTHD->variables.collation_connection; + const CHARSET_INFO *cs= thd->variables.collation_connection; item->collation.repertoire|= my_string_repertoire(cs, $2.str, $2.length); @@ -13408,15 +13311,15 @@ text_literal: text_string: TEXT_STRING_literal { - $$= new (YYTHD->mem_root) String($1.str, + $$= new (thd->mem_root) String($1.str, $1.length, - YYTHD->variables.collation_connection); + thd->variables.collation_connection); if ($$ == NULL) MYSQL_YYABORT; } | HEX_NUM { - Item *tmp= new (YYTHD->mem_root) Item_hex_string($1.str, $1.length); + Item *tmp= new (thd->mem_root) Item_hex_string($1.str, $1.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -13428,7 +13331,7 @@ text_string: } | BIN_NUM { - Item *tmp= new (YYTHD->mem_root) Item_bin_string($1.str, $1.length); + Item *tmp= new (thd->mem_root) Item_bin_string($1.str, $1.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -13443,7 +13346,6 @@ text_string: param_marker: PARAM_MARKER { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; Item_param *item; @@ -13478,38 +13380,38 @@ literal: | temporal_literal { $$= $1; } | NULL_SYM { - $$ = new (YYTHD->mem_root) Item_null(); + $$ = new (thd->mem_root) Item_null(); if ($$ == NULL) MYSQL_YYABORT; YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT; } | FALSE_SYM { - $$= new (YYTHD->mem_root) Item_int(NAME_STRING("FALSE"), 0, 1); + $$= new (thd->mem_root) Item_int(NAME_STRING("FALSE"), 0, 1); if ($$ == NULL) MYSQL_YYABORT; } | TRUE_SYM { - $$= new (YYTHD->mem_root) Item_int(NAME_STRING("TRUE"), 1, 1); + $$= new (thd->mem_root) Item_int(NAME_STRING("TRUE"), 1, 1); if ($$ == NULL) MYSQL_YYABORT; } | HEX_NUM { - $$ = new (YYTHD->mem_root) Item_hex_string($1.str, $1.length); + $$ = new (thd->mem_root) Item_hex_string($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | BIN_NUM { - $$= new (YYTHD->mem_root) Item_bin_string($1.str, $1.length); + $$= new (thd->mem_root) Item_bin_string($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | UNDERSCORE_CHARSET HEX_NUM { - Item *tmp= new (YYTHD->mem_root) Item_hex_string($2.str, $2.length); + Item *tmp= new (thd->mem_root) Item_hex_string($2.str, $2.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -13520,7 +13422,7 @@ literal: String *str= tmp->val_str((String*) 0); Item_string *item_str; - item_str= new (YYTHD->mem_root) + item_str= new (thd->mem_root) Item_string(null_name_string, /* name will be set in select_item */ str ? str->ptr() : "", str ? str->length() : 0, @@ -13538,7 +13440,7 @@ literal: } | UNDERSCORE_CHARSET BIN_NUM { - Item *tmp= new (YYTHD->mem_root) Item_bin_string($2.str, $2.length); + Item *tmp= new (thd->mem_root) Item_bin_string($2.str, $2.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -13549,7 +13451,7 @@ literal: String *str= tmp->val_str((String*) 0); Item_string *item_str; - item_str= new (YYTHD->mem_root) + item_str= new (thd->mem_root) Item_string(null_name_string, /* name will be set in select_item */ str ? str->ptr() : "", str ? str->length() : 0, @@ -13570,7 +13472,7 @@ NUM_literal: NUM { int error; - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_int($1, (longlong) my_strtoll10($1.str, NULL, &error), $1.length); @@ -13580,7 +13482,7 @@ NUM_literal: | LONG_NUM { int error; - $$= new (YYTHD->mem_root) + $$= new (thd->mem_root) Item_int($1, (longlong) my_strtoll10($1.str, NULL, &error), $1.length); @@ -13589,23 +13491,23 @@ NUM_literal: } | ULONGLONG_NUM { - $$= new (YYTHD->mem_root) Item_uint($1.str, $1.length); + $$= new (thd->mem_root) Item_uint($1.str, $1.length); if ($$ == NULL) MYSQL_YYABORT; } | DECIMAL_NUM { - $$= new (YYTHD->mem_root) Item_decimal($1.str, $1.length, - YYTHD->charset()); - if (($$ == NULL) || (YYTHD->is_error())) + $$= new (thd->mem_root) Item_decimal($1.str, $1.length, + thd->charset()); + if (($$ == NULL) || (thd->is_error())) { MYSQL_YYABORT; } } | FLOAT_NUM { - $$= new (YYTHD->mem_root) Item_float($1.str, $1.length); - if (($$ == NULL) || (YYTHD->is_error())) + $$= new (thd->mem_root) Item_float($1.str, $1.length); + if (($$ == NULL) || (thd->is_error())) { MYSQL_YYABORT; } @@ -13616,19 +13518,19 @@ NUM_literal: temporal_literal: DATE_SYM TEXT_STRING { - if (!($$= create_temporal_literal(YYTHD, $2.str, $2.length, YYCSCL, + if (!($$= create_temporal_literal(thd, $2.str, $2.length, YYCSCL, MYSQL_TYPE_DATE, true))) MYSQL_YYABORT; } | TIME_SYM TEXT_STRING { - if (!($$= create_temporal_literal(YYTHD, $2.str, $2.length, YYCSCL, + if (!($$= create_temporal_literal(thd, $2.str, $2.length, YYCSCL, MYSQL_TYPE_TIME, true))) MYSQL_YYABORT; } | TIMESTAMP TEXT_STRING { - if (!($$= create_temporal_literal(YYTHD, $2.str, $2.length, YYCSCL, + if (!($$= create_temporal_literal(thd, $2.str, $2.length, YYCSCL, MYSQL_TYPE_DATETIME, true))) MYSQL_YYABORT; } @@ -13650,7 +13552,7 @@ table_wild: ident '.' '*' { SELECT_LEX *sel= Select; - $$= new (YYTHD->mem_root) Item_field(Lex->current_context(), + $$= new (thd->mem_root) Item_field(Lex->current_context(), NullS, $1.str, "*"); if ($$ == NULL) MYSQL_YYABORT; @@ -13658,7 +13560,6 @@ table_wild: } | ident '.' ident '.' '*' { - THD *thd= YYTHD; SELECT_LEX *sel= Select; const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : $1.str; @@ -13678,7 +13579,6 @@ order_ident: simple_ident: ident { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_pcontext *pctx = lex->get_sp_current_parsing_ctx(); sp_variable *spv; @@ -13733,7 +13633,6 @@ simple_ident: simple_ident_nospvar: ident { - THD *thd= YYTHD; SELECT_LEX *sel=Select; if ((sel->parsing_place != IN_HAVING) || (sel->get_in_sum_expr() > 0)) @@ -13755,7 +13654,6 @@ simple_ident_nospvar: simple_ident_q: ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -13835,7 +13733,6 @@ simple_ident_q: } | '.' ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; SELECT_LEX *sel= lex->current_select; if (sel->no_table_names_allowed) @@ -13860,7 +13757,6 @@ simple_ident_q: } | ident '.' ident '.' ident { - THD *thd= YYTHD; LEX *lex= thd->lex; SELECT_LEX *sel= lex->current_select; const char* schema= (thd->client_capabilities & CLIENT_NO_SCHEMA ? @@ -13928,7 +13824,7 @@ table_ident: } | ident '.' ident { - $$= new Table_ident(YYTHD, $1,$3,0); + $$= new Table_ident(thd, $1,$3,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -13950,7 +13846,7 @@ table_ident_opt_wild: } | ident '.' ident opt_wild { - $$= new Table_ident(YYTHD, $1,$3,0); + $$= new Table_ident(thd, $1,$3,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -13960,7 +13856,7 @@ table_ident_nodb: ident { LEX_STRING db={(char*) any_db,3}; - $$= new Table_ident(YYTHD, db,$1,0); + $$= new Table_ident(thd, db,$1,0); if ($$ == NULL) MYSQL_YYABORT; } @@ -13970,8 +13866,6 @@ IDENT_sys: IDENT { $$= $1; } | IDENT_QUOTED { - THD *thd= YYTHD; - if (thd->charset_is_system_charset) { const CHARSET_INFO *cs= system_charset_info; @@ -14013,8 +13907,6 @@ TEXT_STRING_sys_nonewline: TEXT_STRING_sys: TEXT_STRING { - THD *thd= YYTHD; - if (thd->charset_is_system_charset) $$= $1; else @@ -14029,8 +13921,6 @@ TEXT_STRING_sys: TEXT_STRING_literal: TEXT_STRING { - THD *thd= YYTHD; - if (thd->charset_is_collation_connection) $$= $1; else @@ -14045,8 +13935,6 @@ TEXT_STRING_literal: TEXT_STRING_filesystem: TEXT_STRING { - THD *thd= YYTHD; - if (thd->charset_is_character_set_filesystem) $$= $1; else @@ -14063,7 +13951,6 @@ ident: IDENT_sys { $$=$1; } | keyword { - THD *thd= YYTHD; $$.str= thd->strmake($1.str, $1.length); if ($$.str == NULL) MYSQL_YYABORT; @@ -14075,7 +13962,6 @@ label_ident: IDENT_sys { $$=$1; } | keyword_sp { - THD *thd= YYTHD; $$.str= thd->strmake($1.str, $1.length); if ($$.str == NULL) MYSQL_YYABORT; @@ -14092,7 +13978,6 @@ ident_or_text: user: ident_or_text { - THD *thd= YYTHD; if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) MYSQL_YYABORT; $$->user= $1; @@ -14119,7 +14004,6 @@ user: } | ident_or_text '@' ident_or_text { - THD *thd= YYTHD; if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) MYSQL_YYABORT; $$->user= $1; @@ -14152,7 +14036,7 @@ user: } | CURRENT_USER optional_braces { - if (!($$=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user)))) + if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) MYSQL_YYABORT; /* empty LEX_USER means current_user and @@ -14557,7 +14441,7 @@ set: lex->one_shot_set= 0; lex->autocommit= 0; - sp_create_assignment_lex(YYTHD, YY_TOKEN_END); + sp_create_assignment_lex(thd, YY_TOKEN_END); } start_option_value_list {} @@ -14596,7 +14480,7 @@ set_stmt_option_value_following_option_type_list: start_option_value_list: option_value_no_option_type { - if (sp_create_assignment_instr(YYTHD, YY_TOKEN_END)) + if (sp_create_assignment_instr(thd, YY_TOKEN_END)) MYSQL_YYABORT; } option_value_list_continued @@ -14606,7 +14490,7 @@ start_option_value_list: } transaction_characteristics { - if (sp_create_assignment_instr(YYTHD, YY_TOKEN_END)) + if (sp_create_assignment_instr(thd, YY_TOKEN_END)) MYSQL_YYABORT; } | option_type @@ -14621,13 +14505,13 @@ start_option_value_list: start_option_value_list_following_option_type: option_value_following_option_type { - if (sp_create_assignment_instr(YYTHD, YY_TOKEN_END)) + if (sp_create_assignment_instr(thd, YY_TOKEN_END)) MYSQL_YYABORT; } option_value_list_continued | TRANSACTION_SYM transaction_characteristics { - if (sp_create_assignment_instr(YYTHD, YY_TOKEN_END)) + if (sp_create_assignment_instr(thd, YY_TOKEN_END)) MYSQL_YYABORT; } ; @@ -14641,20 +14525,20 @@ option_value_list_continued: // Repeating list of option values after first option value. option_value_list: { - sp_create_assignment_lex(YYTHD, YY_TOKEN_START); + sp_create_assignment_lex(thd, YY_TOKEN_START); } option_value { - if (sp_create_assignment_instr(YYTHD, YY_TOKEN_END)) + if (sp_create_assignment_instr(thd, YY_TOKEN_END)) MYSQL_YYABORT; } | option_value_list ',' { - sp_create_assignment_lex(YYTHD, YY_TOKEN_START); + sp_create_assignment_lex(thd, YY_TOKEN_START); } option_value { - if (sp_create_assignment_instr(YYTHD, YY_TOKEN_END)) + if (sp_create_assignment_instr(thd, YY_TOKEN_END)) MYSQL_YYABORT; } ; @@ -14693,7 +14577,6 @@ opt_var_ident_type: option_value_following_option_type: internal_variable_name equal set_expr_or_default { - THD *thd= YYTHD; LEX *lex= Lex; /* Ignore SET STATEMENT variables list on slaves because system @@ -14733,7 +14616,6 @@ option_value_no_option_type: } set_expr_or_default { - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; const char *expr_start_ptr= NULL; @@ -14827,7 +14709,7 @@ option_value_no_option_type: | '@' ident_or_text equal expr { Item_func_set_user_var *item; - item= new (YYTHD->mem_root) Item_func_set_user_var($2, $4, false); + item= new (thd->mem_root) Item_func_set_user_var($2, $4, false); if (item == NULL) MYSQL_YYABORT; set_var_user *var= new set_var_user(item); @@ -14837,7 +14719,6 @@ option_value_no_option_type: } | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default { - THD *thd= YYTHD; struct sys_var_with_base tmp= $4; /* Lookup if necessary: must be a system variable. */ if (tmp.var == NULL) @@ -14850,7 +14731,6 @@ option_value_no_option_type: } | charset old_or_new_charset_name_or_default { - THD *thd= YYTHD; LEX *lex= thd->lex; int flags= $2 ? 0 : set_var_collation_client::SET_CS_DEFAULT; const CHARSET_INFO *cs2; @@ -14901,7 +14781,6 @@ option_value_no_option_type: } | PASSWORD equal text_or_password { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); @@ -14978,7 +14857,6 @@ option_value_no_option_type: internal_variable_name: ident { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_pcontext *pctx= lex->get_sp_current_parsing_ctx(); sp_variable *spv; @@ -15041,7 +14919,7 @@ internal_variable_name: } else { - sys_var *tmp=find_sys_var(YYTHD, $3.str, $3.length); + sys_var *tmp=find_sys_var(thd, $3.str, $3.length); if (!tmp) MYSQL_YYABORT; if (!tmp->is_struct()) @@ -15052,7 +14930,7 @@ internal_variable_name: } | DEFAULT '.' ident { - sys_var *tmp=find_sys_var(YYTHD, $3.str, $3.length); + sys_var *tmp=find_sys_var(thd, $3.str, $3.length); if (!tmp) MYSQL_YYABORT; if (!tmp->is_struct()) @@ -15073,7 +14951,6 @@ transaction_characteristics: transaction_access_mode: transaction_access_mode_types { - THD *thd= YYTHD; LEX *lex=Lex; Item *item= new (thd->mem_root) Item_int((int32) $1); if (item == NULL) @@ -15091,7 +14968,6 @@ transaction_access_mode: isolation_level: ISOLATION LEVEL_SYM isolation_types { - THD *thd= YYTHD; LEX *lex=Lex; Item *item= new (thd->mem_root) Item_int((int32) $3); if (item == NULL) @@ -15125,13 +15001,13 @@ text_or_password: if ($3.length == 0) $$= $3.str; else - switch (YYTHD->variables.old_passwords) { + switch (thd->variables.old_passwords) { case 1: $$= Item_func_old_password:: - alloc(YYTHD, $3.str, $3.length); + alloc(thd, $3.str, $3.length); break; case 0: case 2: $$= Item_func_password:: - create_password_hash_buffer(YYTHD, $3.str, $3.length); + create_password_hash_buffer(thd, $3.str, $3.length); break; } if ($$ == NULL) @@ -15141,7 +15017,7 @@ text_or_password: | OLD_PASSWORD '(' TEXT_STRING ')' { $$= $3.length ? Item_func_old_password:: - alloc(YYTHD, $3.str, $3.length) : + alloc(thd, $3.str, $3.length) : $3.str; if ($$ == NULL) MYSQL_YYABORT; @@ -15155,19 +15031,19 @@ set_expr_or_default: | DEFAULT { $$=0; } | ON { - $$=new (YYTHD->mem_root) Item_string("ON", 2, system_charset_info); + $$=new (thd->mem_root) Item_string("ON", 2, system_charset_info); if ($$ == NULL) MYSQL_YYABORT; } | ALL { - $$=new (YYTHD->mem_root) Item_string("ALL", 3, system_charset_info); + $$=new (thd->mem_root) Item_string("ALL", 3, system_charset_info); if ($$ == NULL) MYSQL_YYABORT; } | BINARY { - $$=new (YYTHD->mem_root) Item_string("binary", 6, system_charset_info); + $$=new (thd->mem_root) Item_string("binary", 6, system_charset_info); if ($$ == NULL) MYSQL_YYABORT; } @@ -15206,7 +15082,7 @@ table_lock: { thr_lock_type lock_type= (thr_lock_type) $3; bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE); - if (!Select->add_table_to_list(YYTHD, $1, $2, 0, lock_type, + if (!Select->add_table_to_list(thd, $1, $2, 0, lock_type, (lock_for_write ? MDL_SHARED_NO_READ_WRITE : MDL_SHARED_READ))) @@ -15220,7 +15096,7 @@ lock_option: | LOW_PRIORITY WRITE_SYM { $$= TL_WRITE_LOW_PRIORITY; - WARN_DEPRECATED(YYTHD, "LOW_PRIORITY WRITE", "WRITE"); + WARN_DEPRECATED(thd, "LOW_PRIORITY WRITE", "WRITE"); } | READ_SYM LOCAL_SYM { $$= TL_READ; } ; @@ -15248,7 +15124,6 @@ unlock: handler: HANDLER_SYM table_ident OPEN_SYM opt_table_alias { - THD *thd= YYTHD; LEX *lex= Lex; if (lex->sphead) { @@ -15264,7 +15139,6 @@ handler: } | HANDLER_SYM table_ident_nodb CLOSE_SYM { - THD *thd= YYTHD; LEX *lex= Lex; if (lex->sphead) { @@ -15288,7 +15162,7 @@ handler: } lex->expr_allows_subselect= FALSE; lex->sql_command = SQLCOM_HA_READ; - Item *one= new (YYTHD->mem_root) Item_int((int32) 1); + Item *one= new (thd->mem_root) Item_int((int32) 1); if (one == NULL) MYSQL_YYABORT; lex->current_select->select_limit= one; @@ -15298,7 +15172,6 @@ handler: } handler_read_or_scan where_clause opt_limit_clause { - THD *thd= YYTHD; LEX *lex= Lex; Lex->expr_allows_subselect= TRUE; /* Stored functions are not supported for HANDLER READ. */ @@ -15333,7 +15206,7 @@ handler_rkey_function: | LAST_SYM { $$= RLAST; } | handler_rkey_mode { - YYTHD->m_parser_state->m_yacc.m_ha_rkey_mode= $1; + thd->m_parser_state->m_yacc.m_ha_rkey_mode= $1; Lex->insert_list= new List_item; if (! Lex->insert_list) MYSQL_YYABORT; @@ -15641,8 +15514,8 @@ grant_user: my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } - String *password = new (YYTHD->mem_root) String((const char*)$4.str, - YYTHD->variables.character_set_client); + String *password = new (thd->mem_root) String((const char*)$4.str, + thd->variables.character_set_client); check_password_policy(password); /* 1. Plugin must be resolved @@ -15662,8 +15535,8 @@ grant_user: $1->password= $5; if (!strcmp($5.str, "")) { - String *password= new (YYTHD->mem_root) String ((const char *)"", - YYTHD->variables.character_set_client); + String *password= new (thd->mem_root) String ((const char *)"", + thd->variables.character_set_client); check_password_policy(password); } /* @@ -15721,7 +15594,7 @@ column_list: column_list_id: ident { - String *new_str = new (YYTHD->mem_root) String((const char*) $1.str,$1.length,system_charset_info); + String *new_str = new (thd->mem_root) String((const char*) $1.str,$1.length,system_charset_info); if (new_str == NULL) MYSQL_YYABORT; List_iterator iter(Lex->columns); @@ -15931,7 +15804,6 @@ opt_union_order_or_limit: union_order_or_limit: { - THD *thd= YYTHD; LEX *lex= thd->lex; DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE); SELECT_LEX *sel= lex->current_select; @@ -15947,7 +15819,6 @@ union_order_or_limit: } order_or_limit { - THD *thd= YYTHD; thd->lex->current_select->no_table_names_allowed= 0; thd->where= ""; } @@ -16129,14 +16000,14 @@ no_definer: from older master servers (i.e. to create non-suid trigger in this case). */ - YYTHD->lex->definer= 0; + thd->lex->definer= 0; } ; definer: DEFINER_SYM EQ user { - YYTHD->lex->definer= get_current_user(YYTHD, $3); + thd->lex->definer= get_current_user(thd, $3); } ; @@ -16181,7 +16052,6 @@ view_suid: view_tail: view_suid VIEW_SYM table_ident { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_CREATE_VIEW; /* first table in list is target VIEW name */ @@ -16225,7 +16095,6 @@ view_select: } view_select_aux view_check_option { - THD *thd= YYTHD; LEX *lex= Lex; uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str; void *create_view_select= thd->memdup(lex->create_view_select.str, len); @@ -16317,7 +16186,6 @@ trigger_tail: EACH_SYM /* $13 */ ROW_SYM /* $14 */ { /* $15 */ - THD *thd= YYTHD; LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -16347,7 +16215,6 @@ trigger_tail: } sp_proc_stmt /* $16 */ { /* $17 */ - THD *thd= YYTHD; LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -16382,7 +16249,6 @@ udf_tail: AGGREGATE_SYM remember_name FUNCTION_SYM ident RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys { - THD *thd= YYTHD; LEX *lex= thd->lex; if (is_native_function(thd, & $4)) { @@ -16400,7 +16266,6 @@ udf_tail: | remember_name FUNCTION_SYM ident RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys { - THD *thd= YYTHD; LEX *lex= thd->lex; if (is_native_function(thd, & $3)) { @@ -16423,7 +16288,6 @@ sf_tail: sp_name /* $3 */ '(' /* $4 */ { /* $5 */ - THD *thd= YYTHD; LEX *lex= thd->lex; lex->stmt_definition_begin= $1; @@ -16482,7 +16346,7 @@ sf_tail: MYSQL_YYABORT; } - if (fill_field_definition(YYTHD, sp, + if (fill_field_definition(thd, sp, (enum enum_field_types) $11, &sp->m_return_field_def)) MYSQL_YYABORT; @@ -16491,7 +16355,6 @@ sf_tail: } sp_c_chistics /* $13 */ { /* $14 */ - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sphead->m_chistics= &lex->sp_chistics; @@ -16499,7 +16362,6 @@ sf_tail: } sp_proc_stmt /* $15 */ { - THD *thd= YYTHD; LEX *lex= thd->lex; sp_head *sp= lex->sphead; @@ -16557,7 +16419,6 @@ sf_tail: sp_tail: PROCEDURE_SYM remember_name sp_name { - THD *thd= YYTHD; LEX *lex= Lex; if (lex->sphead) @@ -16590,7 +16451,6 @@ sp_tail: sp_pdparam_list ')' { - THD *thd= YYTHD; LEX *lex= thd->lex; Lex->sphead->m_parser_data.set_parameter_end_ptr( @@ -16600,7 +16460,6 @@ sp_tail: } sp_c_chistics { - THD *thd= YYTHD; LEX *lex= thd->lex; lex->sphead->m_chistics= &lex->sp_chistics; @@ -16608,7 +16467,6 @@ sp_tail: } sp_proc_stmt { - THD *thd= YYTHD; LEX *lex= Lex; sp_finish_parsing(thd); @@ -16650,21 +16508,21 @@ xid: text_string { MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE); - if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) + if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, $1->ptr(), $1->length(), 0, 0); } | text_string ',' text_string { MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE); - if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) + if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, $1->ptr(), $1->length(), $3->ptr(), $3->length()); } | text_string ',' text_string ',' ulong_num { MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE); - if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) + if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set($5, $1->ptr(), $1->length(), $3->ptr(), $3->length()); } diff --git a/storage/perfschema/gen_pfs_lex_token.cc b/storage/perfschema/gen_pfs_lex_token.cc index 7581255..2eee5d1 100644 --- a/storage/perfschema/gen_pfs_lex_token.cc +++ b/storage/perfschema/gen_pfs_lex_token.cc @@ -21,6 +21,7 @@ /* We only need the tokens here */ #define YYSTYPE_IS_DECLARED +class THD; #include <../sql/sql_yacc.h> #include