mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
3539 lines
128 KiB
Diff
3539 lines
128 KiB
Diff
From 6325837d6abf272b8c3dfac664f18435f8a2abf8 Mon Sep 17 00:00:00 2001
|
|
From: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
|
|
Date: Thu, 5 Sep 2013 09:52:54 +0200
|
|
Subject: [PATCH] MDEV-4902 - sql_yacc.yy incompatible with bison 3
|
|
|
|
- YYPARSE_PARAM and YYLEX_PARAM are removed in Bison 3.0. Deprecated
|
|
since Bison 1.875 in favor of %lex-param, %parse-param.
|
|
- %pure_parser is deprecated in favor of %define api.pure.
|
|
- %parse-param adds an argument to yyerror() as well, updated
|
|
MYSQLerror() accordingly.
|
|
- %parse-param allows to declare proper type for argument. That's
|
|
what 99% of this patch is about.
|
|
---
|
|
sql/sql_lex.cc | 12 +-
|
|
sql/sql_lex.h | 2 +-
|
|
sql/sql_parse.cc | 2 +-
|
|
sql/sql_yacc.yy | 799 ++++++++++++++++++++++++-------------------------------
|
|
4 files changed, 361 insertions(+), 454 deletions(-)
|
|
|
|
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
|
|
index 18323f8..b01d451 100644
|
|
--- a/sql/sql_lex.cc
|
|
+++ b/sql/sql_lex.cc
|
|
@@ -29,7 +29,7 @@
|
|
#include "sp.h"
|
|
#include "sp_head.h"
|
|
|
|
-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
|
|
@@ -869,9 +869,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;
|
|
@@ -889,7 +888,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:
|
|
@@ -900,7 +899,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:
|
|
return WITH_CUBE_SYM;
|
|
@@ -923,14 +922,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 8648b32..ba37127 100644
|
|
--- a/sql/sql_lex.h
|
|
+++ b/sql/sql_lex.h
|
|
@@ -2820,7 +2820,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(CHARSET_INFO *cs, LEX_STRING *str);
|
|
|
|
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
|
|
index a1a79fd..d826b77 100644
|
|
--- a/sql/sql_parse.cc
|
|
+++ b/sql/sql_parse.cc
|
|
@@ -7636,7 +7636,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 34ae03b..2a6d9aa 100644
|
|
--- a/sql/sql_yacc.yy
|
|
+++ b/sql/sql_yacc.yy
|
|
@@ -22,20 +22,13 @@
|
|
*/
|
|
|
|
%{
|
|
-/* 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 YYLIP (& thd->m_parser_state->m_lip)
|
|
+#define YYPS (& thd->m_parser_state->m_yacc)
|
|
|
|
#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
|
|
@@ -69,14 +62,14 @@
|
|
#pragma warning (disable : 4065)
|
|
#endif
|
|
|
|
-int yylex(void *yylval, void *yythd);
|
|
+int yylex(void *yylval, THD *thd);
|
|
|
|
#define yyoverflow(A,B,C,D,E,F) \
|
|
{ \
|
|
ulong val= *(F); \
|
|
if (my_yyoverflow((B), (D), &val)) \
|
|
{ \
|
|
- yyerror((char*) (A)); \
|
|
+ yyerror(current_thd, (char*) (A)); \
|
|
return 2; \
|
|
} \
|
|
else \
|
|
@@ -88,7 +81,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)
|
|
|
|
@@ -174,10 +167,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
|
|
@@ -780,7 +771,10 @@ static bool add_create_index (LEX *lex, Key::Keytype type,
|
|
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 168 shift/reduce conflicts.
|
|
We should not introduce new conflicts any more.
|
|
@@ -1668,7 +1662,6 @@ rule: <-- starts at col 1
|
|
query:
|
|
END_OF_INPUT
|
|
{
|
|
- THD *thd= YYTHD;
|
|
if (!thd->bootstrap &&
|
|
(!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
|
|
{
|
|
@@ -1682,7 +1675,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())
|
|
{
|
|
@@ -1778,7 +1771,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;
|
|
@@ -1793,7 +1785,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;
|
|
@@ -1803,14 +1794,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;
|
|
@@ -1820,7 +1809,6 @@ prepare_src:
|
|
execute:
|
|
EXECUTE_SYM ident
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
lex->sql_command= SQLCOM_EXECUTE;
|
|
lex->prepared_stmt_name= $2;
|
|
@@ -1955,7 +1943,7 @@ master_def:
|
|
}
|
|
if (Lex->mi.heartbeat_period > slave_net_timeout)
|
|
{
|
|
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX,
|
|
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX));
|
|
}
|
|
@@ -1963,7 +1951,7 @@ master_def:
|
|
{
|
|
if (Lex->mi.heartbeat_period != 0.0)
|
|
{
|
|
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
+ push_warning_printf(thd, MYSQL_ERROR::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;
|
|
@@ -2038,7 +2026,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,
|
|
@@ -2063,13 +2050,13 @@ create:
|
|
}
|
|
create2
|
|
{
|
|
- LEX *lex= YYTHD->lex;
|
|
+ LEX *lex= thd->lex;
|
|
lex->current_select= &lex->select_lex;
|
|
if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
|
|
!lex->create_info.db_type)
|
|
{
|
|
- lex->create_info.db_type= ha_default_handlerton(YYTHD);
|
|
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
+ lex->create_info.db_type= ha_default_handlerton(thd);
|
|
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
ER_WARN_USING_OTHER_HANDLER,
|
|
ER(ER_WARN_USING_OTHER_HANDLER),
|
|
ha_resolve_storage_engine_name(lex->create_info.db_type),
|
|
@@ -2199,7 +2186,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;
|
|
@@ -2266,7 +2252,7 @@ opt_ev_status:
|
|
ev_starts:
|
|
/* empty */
|
|
{
|
|
- Item *item= new (YYTHD->mem_root) Item_func_now_local();
|
|
+ Item *item= new (thd->mem_root) Item_func_now_local();
|
|
if (item == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->event_parse_data->item_starts= item;
|
|
@@ -2316,7 +2302,6 @@ opt_ev_comment:
|
|
|
|
ev_sql_stmt:
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
|
|
@@ -2359,7 +2344,6 @@ ev_sql_stmt:
|
|
}
|
|
ev_sql_stmt_inner
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
|
|
/* return back to the original memory root ASAP */
|
|
@@ -2418,11 +2402,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 (check_routine_name(&$1))
|
|
@@ -2492,7 +2475,7 @@ call:
|
|
lex->sql_command= SQLCOM_CALL;
|
|
lex->spname= $2;
|
|
lex->value_list.empty();
|
|
- sp_add_used_routine(lex, YYTHD, $2, TYPE_ENUM_PROCEDURE);
|
|
+ sp_add_used_routine(lex, thd, $2, TYPE_ENUM_PROCEDURE);
|
|
}
|
|
opt_sp_cparam_list {}
|
|
;
|
|
@@ -2565,7 +2548,7 @@ sp_fdparam:
|
|
(enum enum_field_types)$3,
|
|
sp_param_in);
|
|
|
|
- if (lex->sphead->fill_field_definition(YYTHD, lex,
|
|
+ if (lex->sphead->fill_field_definition(thd, lex,
|
|
(enum enum_field_types) $3,
|
|
&spvar->field_def))
|
|
{
|
|
@@ -2602,7 +2585,7 @@ sp_pdparam:
|
|
(enum enum_field_types)$4,
|
|
(sp_param_mode_t)$1);
|
|
|
|
- if (lex->sphead->fill_field_definition(YYTHD, lex,
|
|
+ if (lex->sphead->fill_field_definition(thd, lex,
|
|
(enum enum_field_types) $4,
|
|
&spvar->field_def))
|
|
{
|
|
@@ -2665,13 +2648,12 @@ sp_decl:
|
|
{
|
|
LEX *lex= Lex;
|
|
|
|
- lex->sphead->reset_lex(YYTHD);
|
|
+ lex->sphead->reset_lex(thd);
|
|
lex->spcont->declare_var_boundary($2);
|
|
}
|
|
type_with_opt_collate
|
|
sp_opt_default
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= Lex;
|
|
sp_pcontext *pctx= lex->spcont;
|
|
uint num_vars= pctx->context_var_count();
|
|
@@ -2697,7 +2679,7 @@ sp_decl:
|
|
spvar->type= var_type;
|
|
spvar->dflt= dflt_value_item;
|
|
|
|
- if (lex->sphead->fill_field_definition(YYTHD, lex, var_type,
|
|
+ if (lex->sphead->fill_field_definition(thd, lex, var_type,
|
|
&spvar->field_def))
|
|
{
|
|
MYSQL_YYABORT;
|
|
@@ -2721,7 +2703,7 @@ sp_decl:
|
|
}
|
|
|
|
pctx->declare_var_boundary(0);
|
|
- if (lex->sphead->restore_lex(YYTHD))
|
|
+ if (lex->sphead->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
$$.vars= $2;
|
|
$$.conds= $$.hndlrs= $$.curs= 0;
|
|
@@ -2736,7 +2718,7 @@ sp_decl:
|
|
my_error(ER_SP_DUP_COND, MYF(0), $2.str);
|
|
MYSQL_YYABORT;
|
|
}
|
|
- if(YYTHD->lex->spcont->push_cond(&$2, $5))
|
|
+ if(thd->lex->spcont->push_cond(&$2, $5))
|
|
MYSQL_YYABORT;
|
|
$$.vars= $$.hndlrs= $$.curs= 0;
|
|
$$.conds= 1;
|
|
@@ -2822,7 +2804,7 @@ sp_decl:
|
|
|
|
sp_cursor_stmt:
|
|
{
|
|
- Lex->sphead->reset_lex(YYTHD);
|
|
+ Lex->sphead->reset_lex(thd);
|
|
}
|
|
select
|
|
{
|
|
@@ -2838,7 +2820,7 @@ sp_cursor_stmt:
|
|
}
|
|
lex->sp_lex_in_use= TRUE;
|
|
$$= lex;
|
|
- if (lex->sphead->restore_lex(YYTHD))
|
|
+ if (lex->sphead->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
}
|
|
;
|
|
@@ -2887,7 +2869,7 @@ sp_cond:
|
|
my_error(ER_WRONG_VALUE, MYF(0), "CONDITION", "0");
|
|
MYSQL_YYABORT;
|
|
}
|
|
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
|
|
+ $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t));
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->type= sp_cond_type_t::number;
|
|
@@ -2904,7 +2886,7 @@ sqlstate:
|
|
my_error(ER_SP_BAD_SQLSTATE, MYF(0), $3.str);
|
|
MYSQL_YYABORT;
|
|
}
|
|
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
|
|
+ $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t));
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->type= sp_cond_type_t::state;
|
|
@@ -2934,21 +2916,21 @@ sp_hcond:
|
|
}
|
|
| SQLWARNING_SYM /* SQLSTATEs 01??? */
|
|
{
|
|
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
|
|
+ $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t));
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->type= sp_cond_type_t::warning;
|
|
}
|
|
| not FOUND_SYM /* SQLSTATEs 02??? */
|
|
{
|
|
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
|
|
+ $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t));
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->type= sp_cond_type_t::notfound;
|
|
}
|
|
| SQLEXCEPTION_SYM /* All other SQLSTATEs */
|
|
{
|
|
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
|
|
+ $$= (sp_cond_type_t *)thd->alloc(sizeof(sp_cond_type_t));
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->type= sp_cond_type_t::exception;
|
|
@@ -2958,7 +2940,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;
|
|
|
|
@@ -3008,7 +2989,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
|
|
;
|
|
@@ -3017,7 +2998,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;
|
|
@@ -3026,7 +3007,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)
|
|
{
|
|
@@ -3097,7 +3078,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;
|
|
|
|
@@ -3172,7 +3152,6 @@ sp_proc_stmt_if:
|
|
|
|
sp_proc_stmt_statement:
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
|
|
@@ -3181,7 +3160,6 @@ sp_proc_stmt_statement:
|
|
}
|
|
statement
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
sp_head *sp= lex->sphead;
|
|
@@ -3228,7 +3206,7 @@ sp_proc_stmt_statement:
|
|
|
|
sp_proc_stmt_return:
|
|
RETURN_SYM
|
|
- { Lex->sphead->reset_lex(YYTHD); }
|
|
+ { Lex->sphead->reset_lex(thd); }
|
|
expr
|
|
{
|
|
LEX *lex= Lex;
|
|
@@ -3250,7 +3228,7 @@ sp_proc_stmt_return:
|
|
MYSQL_YYABORT;
|
|
sp->m_flags|= sp_head::HAS_RETURN;
|
|
}
|
|
- if (sp->restore_lex(YYTHD))
|
|
+ if (sp->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
}
|
|
;
|
|
@@ -3477,7 +3455,7 @@ sp_fetch_list:
|
|
;
|
|
|
|
sp_if:
|
|
- { Lex->sphead->reset_lex(YYTHD); }
|
|
+ { Lex->sphead->reset_lex(thd); }
|
|
expr THEN_SYM
|
|
{
|
|
LEX *lex= Lex;
|
|
@@ -3491,7 +3469,7 @@ sp_if:
|
|
sp->add_cont_backpatch(i) ||
|
|
sp->add_instr(i))
|
|
MYSQL_YYABORT;
|
|
- if (sp->restore_lex(YYTHD))
|
|
+ if (sp->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
}
|
|
sp_proc_stmts1
|
|
@@ -3530,7 +3508,7 @@ simple_case_stmt:
|
|
{
|
|
LEX *lex= Lex;
|
|
case_stmt_action_case(lex);
|
|
- lex->sphead->reset_lex(YYTHD); /* For expr $3 */
|
|
+ lex->sphead->reset_lex(thd); /* For expr $3 */
|
|
}
|
|
expr
|
|
{
|
|
@@ -3539,7 +3517,7 @@ simple_case_stmt:
|
|
MYSQL_YYABORT;
|
|
|
|
/* For expr $3 */
|
|
- if (lex->sphead->restore_lex(YYTHD))
|
|
+ if (lex->sphead->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
}
|
|
simple_when_clause_list
|
|
@@ -3581,7 +3559,7 @@ searched_when_clause_list:
|
|
simple_when_clause:
|
|
WHEN_SYM
|
|
{
|
|
- Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
|
|
+ Lex->sphead->reset_lex(thd); /* For expr $3 */
|
|
}
|
|
expr
|
|
{
|
|
@@ -3591,7 +3569,7 @@ simple_when_clause:
|
|
if (case_stmt_action_when(lex, $3, true))
|
|
MYSQL_YYABORT;
|
|
/* For expr $3 */
|
|
- if (lex->sphead->restore_lex(YYTHD))
|
|
+ if (lex->sphead->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
}
|
|
THEN_SYM
|
|
@@ -3606,7 +3584,7 @@ simple_when_clause:
|
|
searched_when_clause:
|
|
WHEN_SYM
|
|
{
|
|
- Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
|
|
+ Lex->sphead->reset_lex(thd); /* For expr $3 */
|
|
}
|
|
expr
|
|
{
|
|
@@ -3614,7 +3592,7 @@ searched_when_clause:
|
|
if (case_stmt_action_when(lex, $3, false))
|
|
MYSQL_YYABORT;
|
|
/* For expr $3 */
|
|
- if (lex->sphead->restore_lex(YYTHD))
|
|
+ if (lex->sphead->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
}
|
|
THEN_SYM
|
|
@@ -3778,7 +3756,7 @@ sp_unlabeled_control:
|
|
MYSQL_YYABORT;
|
|
}
|
|
| WHILE_SYM
|
|
- { Lex->sphead->reset_lex(YYTHD); }
|
|
+ { Lex->sphead->reset_lex(thd); }
|
|
expr DO_SYM
|
|
{
|
|
LEX *lex= Lex;
|
|
@@ -3792,7 +3770,7 @@ sp_unlabeled_control:
|
|
sp->new_cont_backpatch(i) ||
|
|
sp->add_instr(i))
|
|
MYSQL_YYABORT;
|
|
- if (sp->restore_lex(YYTHD))
|
|
+ if (sp->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
}
|
|
sp_proc_stmts1 END WHILE_SYM
|
|
@@ -3807,7 +3785,7 @@ sp_unlabeled_control:
|
|
lex->sphead->do_cont_backpatch();
|
|
}
|
|
| REPEAT_SYM sp_proc_stmts1 UNTIL_SYM
|
|
- { Lex->sphead->reset_lex(YYTHD); }
|
|
+ { Lex->sphead->reset_lex(thd); }
|
|
expr END REPEAT_SYM
|
|
{
|
|
LEX *lex= Lex;
|
|
@@ -3819,7 +3797,7 @@ sp_unlabeled_control:
|
|
if (i == NULL ||
|
|
lex->sphead->add_instr(i))
|
|
MYSQL_YYABORT;
|
|
- if (lex->sphead->restore_lex(YYTHD))
|
|
+ if (lex->sphead->restore_lex(thd))
|
|
MYSQL_YYABORT;
|
|
/* We can shortcut the cont_backpatch here */
|
|
i->m_cont_dest= ip+1;
|
|
@@ -4242,7 +4220,6 @@ create2:
|
|
create3 {}
|
|
| LIKE table_ident
|
|
{
|
|
- THD *thd= YYTHD;
|
|
TABLE_LIST *src_table;
|
|
LEX *lex= thd->lex;
|
|
|
|
@@ -4257,7 +4234,6 @@ create2:
|
|
}
|
|
| '(' LIKE table_ident ')'
|
|
{
|
|
- THD *thd= YYTHD;
|
|
TABLE_LIST *src_table;
|
|
LEX *lex= thd->lex;
|
|
|
|
@@ -4858,7 +4834,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;
|
|
}
|
|
@@ -5252,19 +5228,19 @@ default_collation:
|
|
storage_engines:
|
|
ident_or_text
|
|
{
|
|
- plugin_ref plugin= ha_resolve_by_name(YYTHD, &$1);
|
|
+ plugin_ref plugin= ha_resolve_by_name(thd, &$1);
|
|
|
|
if (plugin)
|
|
$$= plugin_data(plugin, handlerton*);
|
|
else
|
|
{
|
|
- if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
|
|
+ if (thd->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
|
|
{
|
|
my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), $1.str);
|
|
MYSQL_YYABORT;
|
|
}
|
|
$$= 0;
|
|
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
ER_UNKNOWN_STORAGE_ENGINE,
|
|
ER(ER_UNKNOWN_STORAGE_ENGINE),
|
|
$1.str);
|
|
@@ -5276,7 +5252,7 @@ known_storage_engines:
|
|
ident_or_text
|
|
{
|
|
plugin_ref plugin;
|
|
- if ((plugin= ha_resolve_by_name(YYTHD, &$1)))
|
|
+ if ((plugin= ha_resolve_by_name(thd, &$1)))
|
|
$$= plugin_data(plugin, handlerton*);
|
|
else
|
|
{
|
|
@@ -5506,7 +5482,7 @@ type:
|
|
{
|
|
char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1];
|
|
my_snprintf(buff, sizeof(buff), "YEAR(%lu)", length);
|
|
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
|
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
|
ER_WARN_DEPRECATED_SYNTAX,
|
|
ER(ER_WARN_DEPRECATED_SYNTAX),
|
|
buff, "YEAR(4)");
|
|
@@ -5520,7 +5496,7 @@ type:
|
|
{ $$=MYSQL_TYPE_TIME; }
|
|
| TIMESTAMP
|
|
{
|
|
- if (YYTHD->variables.sql_mode & MODE_MAXDB)
|
|
+ if (thd->variables.sql_mode & MODE_MAXDB)
|
|
$$=MYSQL_TYPE_DATETIME;
|
|
else
|
|
{
|
|
@@ -5652,7 +5628,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
|
|
@@ -5727,7 +5703,7 @@ attribute:
|
|
| DEFAULT now_or_signed_literal { Lex->default_value=$2; }
|
|
| ON UPDATE_SYM NOW_SYM optional_braces
|
|
{
|
|
- Item *item= new (YYTHD->mem_root) Item_func_now_local();
|
|
+ Item *item= new (thd->mem_root) Item_func_now_local();
|
|
if (item == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->on_update_value= item;
|
|
@@ -5798,7 +5774,7 @@ type_with_opt_collate:
|
|
now_or_signed_literal:
|
|
NOW_SYM optional_braces
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_func_now_local();
|
|
+ $$= new (thd->mem_root) Item_func_now_local();
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
}
|
|
@@ -6217,7 +6193,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;
|
|
@@ -6243,7 +6218,6 @@ alter:
|
|
}
|
|
alter_commands
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
if (!lex->m_stmt)
|
|
{
|
|
@@ -6356,7 +6330,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;
|
|
|
|
@@ -6471,7 +6445,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();
|
|
@@ -6485,7 +6458,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();
|
|
@@ -6497,7 +6469,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_stmt);
|
|
@@ -6510,7 +6481,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();
|
|
@@ -6530,7 +6500,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_stmt);
|
|
@@ -6785,7 +6754,6 @@ alter_list_item:
|
|
{
|
|
if (!$4)
|
|
{
|
|
- THD *thd= YYTHD;
|
|
$4= thd->variables.collation_database;
|
|
}
|
|
$5= $5 ? $5 : $4;
|
|
@@ -6980,7 +6948,6 @@ repair:
|
|
}
|
|
table_list opt_mi_repair_type
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX* lex= thd->lex;
|
|
DBUG_ASSERT(!lex->m_stmt);
|
|
lex->m_stmt= new (thd->mem_root) Repair_table_statement(lex);
|
|
@@ -7018,7 +6985,6 @@ analyze:
|
|
}
|
|
table_list
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX* lex= thd->lex;
|
|
DBUG_ASSERT(!lex->m_stmt);
|
|
lex->m_stmt= new (thd->mem_root) Analyze_table_statement(lex);
|
|
@@ -7053,7 +7019,6 @@ check:
|
|
}
|
|
table_list opt_mi_check_type
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX* lex= thd->lex;
|
|
DBUG_ASSERT(!lex->m_stmt);
|
|
lex->m_stmt= new (thd->mem_root) Check_table_statement(lex);
|
|
@@ -7094,7 +7059,6 @@ optimize:
|
|
}
|
|
table_list
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX* lex= thd->lex;
|
|
DBUG_ASSERT(!lex->m_stmt);
|
|
lex->m_stmt= new (thd->mem_root) Optimize_table_statement(lex);
|
|
@@ -7179,7 +7143,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;
|
|
@@ -7189,7 +7153,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;
|
|
@@ -7225,7 +7189,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;
|
|
@@ -7235,7 +7199,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;
|
|
@@ -7252,7 +7216,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 :
|
|
@@ -7471,7 +7435,6 @@ select_item_list:
|
|
| select_item
|
|
| '*'
|
|
{
|
|
- THD *thd= YYTHD;
|
|
Item *item= new (thd->mem_root)
|
|
Item_field(&thd->lex->current_select->context,
|
|
NULL, NULL, "*");
|
|
@@ -7486,14 +7449,12 @@ 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))
|
|
@@ -7589,7 +7550,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;
|
|
}
|
|
@@ -7597,7 +7558,7 @@ expr:
|
|
| expr XOR expr %prec XOR
|
|
{
|
|
/* XOR is a proprietary extension */
|
|
- $$ = new (YYTHD->mem_root) Item_cond_xor($1, $3);
|
|
+ $$ = new (thd->mem_root) Item_cond_xor($1, $3);
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
}
|
|
@@ -7639,50 +7600,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;
|
|
}
|
|
@@ -7692,19 +7653,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;
|
|
}
|
|
@@ -7726,13 +7687,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;
|
|
@@ -7742,7 +7702,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;
|
|
}
|
|
@@ -7750,13 +7710,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;
|
|
}
|
|
@@ -7764,7 +7724,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();
|
|
@@ -7772,14 +7732,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();
|
|
@@ -7787,42 +7747,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;
|
|
}
|
|
@@ -7832,85 +7792,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;
|
|
}
|
|
@@ -7959,7 +7919,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());
|
|
@@ -7975,7 +7934,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;
|
|
}
|
|
@@ -7985,25 +7944,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;
|
|
}
|
|
@@ -8012,20 +7971,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;
|
|
}
|
|
@@ -8034,7 +7993,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);
|
|
@@ -8042,7 +8001,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;
|
|
@@ -8050,27 +8009,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;
|
|
}
|
|
@@ -8083,14 +8042,14 @@ simple_expr:
|
|
my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
|
|
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;
|
|
@@ -8098,7 +8057,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;
|
|
}
|
|
@@ -8113,19 +8072,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);
|
|
@@ -8133,31 +8092,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<Item> *list= new (thd->mem_root) List<Item>;
|
|
if (list == NULL)
|
|
MYSQL_YYABORT;
|
|
@@ -8172,7 +8130,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);
|
|
@@ -8184,103 +8141,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);
|
|
@@ -8288,7 +8245,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;
|
|
}
|
|
@@ -8309,34 +8266,34 @@ 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 optional_braces
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_func_curtime_local();
|
|
+ $$= new (thd->mem_root) Item_func_curtime_local();
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->safe_to_cache_query=0;
|
|
}
|
|
| CURTIME '(' expr ')'
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_func_curtime_local($3);
|
|
+ $$= new (thd->mem_root) Item_func_curtime_local($3);
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->safe_to_cache_query=0;
|
|
@@ -8344,83 +8301,83 @@ 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;
|
|
}
|
|
| NOW_SYM optional_braces
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_func_now_local();
|
|
+ $$= new (thd->mem_root) Item_func_now_local();
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->safe_to_cache_query=0;
|
|
}
|
|
| NOW_SYM '(' expr ')'
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_func_now_local($3);
|
|
+ $$= new (thd->mem_root) Item_func_now_local($3);
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->safe_to_cache_query=0;
|
|
}
|
|
| 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;
|
|
}
|
|
@@ -8435,9 +8392,9 @@ 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();
|
|
+ $$= new (thd->mem_root) Item_func_sysdate_local();
|
|
else
|
|
- $$= new (YYTHD->mem_root) Item_func_now_local();
|
|
+ $$= new (thd->mem_root) Item_func_now_local();
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->safe_to_cache_query=0;
|
|
@@ -8445,42 +8402,42 @@ function_call_nonkeyword:
|
|
| SYSDATE '(' expr ')'
|
|
{
|
|
if (global_system_variables.sysdate_is_now == 0)
|
|
- $$= new (YYTHD->mem_root) Item_func_sysdate_local($3);
|
|
+ $$= new (thd->mem_root) Item_func_sysdate_local($3);
|
|
else
|
|
- $$= new (YYTHD->mem_root) Item_func_now_local($3);
|
|
+ $$= new (thd->mem_root) Item_func_now_local($3);
|
|
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 optional_braces
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_func_curtime_utc();
|
|
+ $$= new (thd->mem_root) Item_func_curtime_utc();
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->safe_to_cache_query=0;
|
|
}
|
|
| UTC_TIMESTAMP_SYM optional_braces
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_func_now_utc();
|
|
+ $$= new (thd->mem_root) Item_func_now_utc();
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
Lex->safe_to_cache_query=0;
|
|
@@ -8495,62 +8452,61 @@ 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;
|
|
}
|
|
| 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);
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
}
|
|
| PASSWORD '(' expr ')'
|
|
{
|
|
- THD *thd= YYTHD;
|
|
Item* i1;
|
|
if (thd->variables.old_passwords)
|
|
i1= new (thd->mem_root) Item_func_old_password($3);
|
|
@@ -8562,31 +8518,30 @@ 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;
|
|
}
|
|
| 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((char*) "0",
|
|
thd->variables.default_week_format,
|
|
1);
|
|
@@ -8598,7 +8553,7 @@ 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;
|
|
}
|
|
@@ -8620,52 +8575,52 @@ function_call_conflict:
|
|
geometry_function:
|
|
CONTAINS_SYM '(' expr ',' expr ')'
|
|
{
|
|
- $$= GEOM_NEW(YYTHD,
|
|
+ $$= GEOM_NEW(thd,
|
|
Item_func_spatial_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));
|
|
@@ -8703,7 +8658,6 @@ function_call_generic:
|
|
}
|
|
opt_udf_expr_list ')'
|
|
{
|
|
- THD *thd= YYTHD;
|
|
Create_func *builder;
|
|
Item *item= NULL;
|
|
|
|
@@ -8757,7 +8711,6 @@ function_call_generic:
|
|
}
|
|
| ident '.' ident '(' opt_expr_list ')'
|
|
{
|
|
- THD *thd= YYTHD;
|
|
Create_qfunc *builder;
|
|
Item *item= NULL;
|
|
|
|
@@ -8821,7 +8774,7 @@ opt_udf_expr_list:
|
|
udf_expr_list:
|
|
udf_expr
|
|
{
|
|
- $$= new (YYTHD->mem_root) List<Item>;
|
|
+ $$= new (thd->mem_root) List<Item>;
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->push_back($1);
|
|
@@ -8854,7 +8807,7 @@ udf_expr:
|
|
remember_name we may get quoted or escaped names.
|
|
*/
|
|
else if ($2->type() != Item::FIELD_ITEM)
|
|
- $2->set_name($1, (uint) ($3 - $1), YYTHD->charset());
|
|
+ $2->set_name($1, (uint) ($3 - $1), thd->charset());
|
|
$$= $2;
|
|
}
|
|
;
|
|
@@ -8862,46 +8815,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;
|
|
}
|
|
@@ -8911,13 +8864,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;
|
|
}
|
|
@@ -8928,55 +8881,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;
|
|
}
|
|
@@ -8988,7 +8941,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)
|
|
@@ -9017,7 +8970,7 @@ variable_aux:
|
|
ident_or_text SET_VAR expr
|
|
{
|
|
Item_func_set_user_var *item;
|
|
- $$= item= new (YYTHD->mem_root) Item_func_set_user_var($1, $3, false);
|
|
+ $$= item= new (thd->mem_root) Item_func_set_user_var($1, $3, false);
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
LEX *lex= Lex;
|
|
@@ -9026,7 +8979,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;
|
|
@@ -9040,7 +8993,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);
|
|
@@ -9055,7 +9008,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;
|
|
}
|
|
@@ -9082,9 +9035,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:
|
|
@@ -9137,7 +9090,7 @@ opt_expr_list:
|
|
expr_list:
|
|
expr
|
|
{
|
|
- $$= new (YYTHD->mem_root) List<Item>;
|
|
+ $$= new (thd->mem_root) List<Item>;
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->push_back($1);
|
|
@@ -9157,7 +9110,7 @@ ident_list_arg:
|
|
ident_list:
|
|
simple_ident
|
|
{
|
|
- $$= new (YYTHD->mem_root) List<Item>;
|
|
+ $$= new (thd->mem_root) List<Item>;
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
$$->push_back($1);
|
|
@@ -9257,7 +9210,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;
|
|
}
|
|
@@ -9272,7 +9225,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;
|
|
}
|
|
@@ -9302,7 +9255,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;
|
|
}
|
|
@@ -9338,7 +9291,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;
|
|
}
|
|
@@ -9393,7 +9346,7 @@ table_factor:
|
|
}
|
|
table_ident opt_table_alias opt_key_definition
|
|
{
|
|
- if (!($$= Select->add_table_to_list(YYTHD, $2, $3,
|
|
+ if (!($$= Select->add_table_to_list(thd, $2, $3,
|
|
Select->get_table_join_options(),
|
|
YYPS->m_lock_type,
|
|
YYPS->m_mdl_type,
|
|
@@ -9700,7 +9653,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:
|
|
@@ -9709,15 +9662,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:
|
|
@@ -9730,7 +9683,7 @@ using_list:
|
|
{
|
|
if (!($$= new List<String>))
|
|
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)
|
|
@@ -9739,7 +9692,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)
|
|
@@ -9844,7 +9797,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) :
|
|
@@ -9865,9 +9817,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:
|
|
@@ -9928,7 +9880,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;
|
|
@@ -9981,9 +9932,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:
|
|
@@ -10047,7 +9998,6 @@ limit_option:
|
|
ident
|
|
{
|
|
Item_splocal *splocal;
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= & thd->m_parser_state->m_lip;
|
|
sp_variable_t *spv;
|
|
@@ -10084,19 +10034,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;
|
|
}
|
|
@@ -10183,7 +10133,7 @@ procedure_clause:
|
|
lex->proc_list.elements=0;
|
|
lex->proc_list.first=0;
|
|
lex->proc_list.next= &lex->proc_list.first;
|
|
- Item_field *item= new (YYTHD->mem_root)
|
|
+ Item_field *item= new (thd->mem_root)
|
|
Item_field(&lex->current_select->context,
|
|
NULL, NULL, $2.str);
|
|
if (item == NULL)
|
|
@@ -10208,7 +10158,6 @@ procedure_list2:
|
|
procedure_item:
|
|
remember_name expr remember_end
|
|
{
|
|
- THD *thd= YYTHD;
|
|
|
|
if (add_proc_to_list(thd, $2))
|
|
MYSQL_YYABORT;
|
|
@@ -10383,7 +10332,6 @@ drop:
|
|
}
|
|
| DROP FUNCTION_SYM if_exists ident '.' ident
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
sp_name *spname;
|
|
if ($4.str && check_db_name(&$4))
|
|
@@ -10406,7 +10354,6 @@ drop:
|
|
}
|
|
| DROP FUNCTION_SYM if_exists ident
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
LEX_STRING db= {0, 0};
|
|
sp_name *spname;
|
|
@@ -10491,7 +10438,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))
|
|
@@ -10507,7 +10454,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))
|
|
@@ -10581,7 +10528,7 @@ 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;
|
|
@@ -10594,7 +10541,7 @@ 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;
|
|
@@ -10711,7 +10658,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;
|
|
}
|
|
@@ -10764,7 +10711,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;
|
|
}
|
|
;
|
|
@@ -10809,7 +10756,7 @@ delete:
|
|
single_multi:
|
|
FROM table_ident
|
|
{
|
|
- 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))
|
|
MYSQL_YYABORT;
|
|
@@ -10853,7 +10800,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,
|
|
@@ -10863,10 +10810,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,
|
|
@@ -10906,7 +10853,6 @@ truncate:
|
|
}
|
|
table_name
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX* lex= thd->lex;
|
|
DBUG_ASSERT(!lex->m_stmt);
|
|
lex->m_stmt= new (thd->mem_root) Truncate_statement(lex);
|
|
@@ -11000,7 +10946,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
|
|
@@ -11008,7 +10954,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_var_type TEMPORARY TABLES opt_db
|
|
@@ -11017,7 +10963,7 @@ show_param:
|
|
lex->sql_command= SQLCOM_SHOW_TEMPORARY_TABLES;
|
|
lex->option_type= $1;
|
|
lex->select_lex.db= $4;
|
|
- if (prepare_schema_table(YYTHD, lex, 0, SCH_TEMPORARY_TABLES))
|
|
+ if (prepare_schema_table(thd, lex, 0, SCH_TEMPORARY_TABLES))
|
|
MYSQL_YYABORT;
|
|
}
|
|
| opt_full TRIGGERS_SYM opt_db wild_and_where
|
|
@@ -11025,7 +10971,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
|
|
@@ -11033,7 +10979,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
|
|
@@ -11041,7 +10987,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
|
|
@@ -11049,14 +10995,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
|
|
@@ -11069,7 +11015,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
|
|
@@ -11096,21 +11042,21 @@ 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;
|
|
}
|
|
| AUTHORS_SYM
|
|
{
|
|
LEX *lex=Lex;
|
|
lex->sql_command= SQLCOM_SHOW_AUTHORS;
|
|
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
|
|
ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT),
|
|
"SHOW AUTHORS");
|
|
@@ -11119,7 +11065,7 @@ show_param:
|
|
{
|
|
LEX *lex=Lex;
|
|
lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
|
|
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
|
ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
|
|
ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT),
|
|
"SHOW CONTRIBUTORS");
|
|
@@ -11143,7 +11089,7 @@ show_param:
|
|
{
|
|
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
|
|
@@ -11151,7 +11097,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
|
|
@@ -11161,21 +11107,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
|
|
@@ -11205,7 +11151,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;
|
|
@@ -11214,7 +11160,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;
|
|
}
|
|
@@ -11236,7 +11182,7 @@ show_param:
|
|
#ifdef HAVE_RESPONSE_TIME_DISTRIBUTION
|
|
LEX *lex= Lex;
|
|
lex->sql_command= SQLCOM_SELECT;
|
|
- if (prepare_schema_table(YYTHD, lex, 0, SCH_QUERY_RESPONSE_TIME))
|
|
+ if (prepare_schema_table(thd, lex, 0, SCH_QUERY_RESPONSE_TIME))
|
|
MYSQL_YYABORT;
|
|
#endif // HAVE_RESPONSE_TIME_DISTRIBUTION
|
|
}
|
|
@@ -11244,35 +11190,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
|
|
@@ -11299,14 +11245,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
|
|
@@ -11374,7 +11320,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;
|
|
@@ -11397,7 +11343,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
|
|
@@ -11429,7 +11375,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)
|
|
@@ -11647,7 +11593,6 @@ use:
|
|
load:
|
|
LOAD data_or_xml
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
|
|
if (lex->sphead)
|
|
@@ -11670,7 +11615,7 @@ load:
|
|
opt_duplicate INTO TABLE_SYM table_ident
|
|
{
|
|
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))
|
|
MYSQL_YYABORT;
|
|
lex->field_list.empty();
|
|
@@ -11813,7 +11758,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;
|
|
}
|
|
@@ -11834,16 +11779,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->set_name_no_truncate($3, length, YYTHD->charset());
|
|
+ $4->set_name_no_truncate($3, length, thd->charset());
|
|
}
|
|
;
|
|
|
|
@@ -11853,7 +11798,6 @@ text_literal:
|
|
TEXT_STRING
|
|
{
|
|
LEX_STRING tmp;
|
|
- THD *thd= YYTHD;
|
|
CHARSET_INFO *cs_con= thd->variables.collation_connection;
|
|
CHARSET_INFO *cs_cli= thd->variables.character_set_client;
|
|
uint repertoire= thd->lex->text_string_is_7bit &&
|
|
@@ -11879,7 +11823,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);
|
|
@@ -11888,7 +11832,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;
|
|
@@ -11907,7 +11851,7 @@ text_literal:
|
|
If the string has been pure ASCII so far,
|
|
check the new part.
|
|
*/
|
|
- CHARSET_INFO *cs= YYTHD->variables.collation_connection;
|
|
+ CHARSET_INFO *cs= thd->variables.collation_connection;
|
|
item->collation.repertoire|= my_string_repertoire(cs,
|
|
$2.str,
|
|
$2.length);
|
|
@@ -11918,15 +11862,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;
|
|
/*
|
|
@@ -11938,7 +11882,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;
|
|
/*
|
|
@@ -11953,7 +11897,6 @@ text_string:
|
|
param_marker:
|
|
PARAM_MARKER
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
Item_param *item;
|
|
@@ -11986,38 +11929,38 @@ literal:
|
|
| NUM_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((char*) "FALSE",0,1);
|
|
+ $$= new (thd->mem_root) Item_int((char*) "FALSE",0,1);
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
}
|
|
| TRUE_SYM
|
|
{
|
|
- $$= new (YYTHD->mem_root) Item_int((char*) "TRUE",1,1);
|
|
+ $$= new (thd->mem_root) Item_int((char*) "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;
|
|
/*
|
|
@@ -12028,7 +11971,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 will be set in select_item */
|
|
str ? str->ptr() : "",
|
|
str ? str->length() : 0,
|
|
@@ -12046,7 +11989,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;
|
|
/*
|
|
@@ -12057,7 +12000,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 will be set in select_item */
|
|
str ? str->ptr() : "",
|
|
str ? str->length() : 0,
|
|
@@ -12081,7 +12024,7 @@ NUM_literal:
|
|
NUM
|
|
{
|
|
int error;
|
|
- $$= new (YYTHD->mem_root)
|
|
+ $$= new (thd->mem_root)
|
|
Item_int($1.str,
|
|
(longlong) my_strtoll10($1.str, NULL, &error),
|
|
$1.length);
|
|
@@ -12091,7 +12034,7 @@ NUM_literal:
|
|
| LONG_NUM
|
|
{
|
|
int error;
|
|
- $$= new (YYTHD->mem_root)
|
|
+ $$= new (thd->mem_root)
|
|
Item_int($1.str,
|
|
(longlong) my_strtoll10($1.str, NULL, &error),
|
|
$1.length);
|
|
@@ -12100,23 +12043,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;
|
|
}
|
|
@@ -12136,7 +12079,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;
|
|
@@ -12144,7 +12087,6 @@ table_wild:
|
|
}
|
|
| ident '.' ident '.' '*'
|
|
{
|
|
- THD *thd= YYTHD;
|
|
SELECT_LEX *sel= Select;
|
|
const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ?
|
|
NullS : $1.str;
|
|
@@ -12164,7 +12106,6 @@ order_ident:
|
|
simple_ident:
|
|
ident
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
sp_variable_t *spv;
|
|
@@ -12215,7 +12156,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))
|
|
@@ -12237,7 +12177,6 @@ simple_ident_nospvar:
|
|
simple_ident_q:
|
|
ident '.' ident
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
|
|
/*
|
|
@@ -12316,7 +12255,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)
|
|
@@ -12341,7 +12279,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 ?
|
|
@@ -12409,7 +12346,7 @@ table_ident:
|
|
}
|
|
| ident '.' ident
|
|
{
|
|
- $$= new Table_ident(YYTHD, $1,$3,0);
|
|
+ $$= new Table_ident(thd, $1,$3,0);
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
}
|
|
@@ -12431,7 +12368,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;
|
|
}
|
|
@@ -12441,7 +12378,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;
|
|
}
|
|
@@ -12451,7 +12388,6 @@ IDENT_sys:
|
|
IDENT { $$= $1; }
|
|
| IDENT_QUOTED
|
|
{
|
|
- THD *thd= YYTHD;
|
|
|
|
if (thd->charset_is_system_charset)
|
|
{
|
|
@@ -12481,7 +12417,6 @@ IDENT_sys:
|
|
TEXT_STRING_sys:
|
|
TEXT_STRING
|
|
{
|
|
- THD *thd= YYTHD;
|
|
|
|
if (thd->charset_is_system_charset)
|
|
$$= $1;
|
|
@@ -12497,7 +12432,6 @@ TEXT_STRING_sys:
|
|
TEXT_STRING_literal:
|
|
TEXT_STRING
|
|
{
|
|
- THD *thd= YYTHD;
|
|
|
|
if (thd->charset_is_collation_connection)
|
|
$$= $1;
|
|
@@ -12513,7 +12447,6 @@ TEXT_STRING_literal:
|
|
TEXT_STRING_filesystem:
|
|
TEXT_STRING
|
|
{
|
|
- THD *thd= YYTHD;
|
|
|
|
if (thd->charset_is_character_set_filesystem)
|
|
$$= $1;
|
|
@@ -12531,7 +12464,6 @@ ident:
|
|
IDENT_sys { $$=$1; }
|
|
| keyword
|
|
{
|
|
- THD *thd= YYTHD;
|
|
$$.str= thd->strmake($1.str, $1.length);
|
|
if ($$.str == NULL)
|
|
MYSQL_YYABORT;
|
|
@@ -12543,7 +12475,6 @@ label_ident:
|
|
IDENT_sys { $$=$1; }
|
|
| keyword_sp
|
|
{
|
|
- THD *thd= YYTHD;
|
|
$$.str= thd->strmake($1.str, $1.length);
|
|
if ($$.str == NULL)
|
|
MYSQL_YYABORT;
|
|
@@ -12560,7 +12491,6 @@ ident_or_text:
|
|
user:
|
|
ident_or_text
|
|
{
|
|
- THD *thd= YYTHD;
|
|
if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
|
|
MYSQL_YYABORT;
|
|
$$->user = $1;
|
|
@@ -12577,7 +12507,6 @@ user:
|
|
}
|
|
| ident_or_text '@' ident_or_text
|
|
{
|
|
- THD *thd= YYTHD;
|
|
if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
|
|
MYSQL_YYABORT;
|
|
$$->user = $1; $$->host=$3;
|
|
@@ -12599,7 +12528,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
|
|
@@ -12987,7 +12916,6 @@ option_value_list:
|
|
|
|
option_type_value:
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
|
|
@@ -13018,7 +12946,6 @@ option_type_value:
|
|
}
|
|
ext_option_value
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
|
|
@@ -13101,7 +13028,6 @@ ext_option_value:
|
|
sys_option_value:
|
|
option_type internal_variable_name equal set_expr_or_default
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= Lex;
|
|
LEX_STRING *name= &$2.base_name;
|
|
|
|
@@ -13113,7 +13039,7 @@ sys_option_value:
|
|
my_parse_error(ER(ER_SYNTAX_ERROR));
|
|
MYSQL_YYABORT;
|
|
}
|
|
- if (set_trigger_new_row(YYTHD, name, $4))
|
|
+ if (set_trigger_new_row(thd, name, $4))
|
|
MYSQL_YYABORT;
|
|
}
|
|
else if ($2.var)
|
|
@@ -13143,7 +13069,6 @@ sys_option_value:
|
|
}
|
|
| option_type TRANSACTION_SYM ISOLATION LEVEL_SYM isolation_types
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex=Lex;
|
|
lex->option_type= $1;
|
|
Item *item= new (thd->mem_root) Item_int((int32) $5);
|
|
@@ -13163,7 +13088,7 @@ option_value:
|
|
'@' 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);
|
|
@@ -13173,7 +13098,6 @@ option_value:
|
|
}
|
|
| '@' '@' 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)
|
|
@@ -13186,7 +13110,6 @@ option_value:
|
|
}
|
|
| charset old_or_new_charset_name_or_default
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
CHARSET_INFO *cs2;
|
|
cs2= $2 ? $2: global_system_variables.character_set_client;
|
|
@@ -13234,7 +13157,6 @@ option_value:
|
|
}
|
|
| PASSWORD equal text_or_password
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
LEX_USER *user;
|
|
sp_pcontext *spc= lex->spcont;
|
|
@@ -13274,7 +13196,6 @@ option_value:
|
|
internal_variable_name:
|
|
ident
|
|
{
|
|
- THD *thd= YYTHD;
|
|
sp_pcontext *spc= thd->lex->spcont;
|
|
sp_variable_t *spv;
|
|
|
|
@@ -13333,7 +13254,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())
|
|
@@ -13344,7 +13265,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())
|
|
@@ -13366,16 +13287,16 @@ text_or_password:
|
|
TEXT_STRING { $$=$1.str;}
|
|
| PASSWORD '(' TEXT_STRING ')'
|
|
{
|
|
- $$= $3.length ? YYTHD->variables.old_passwords ?
|
|
- Item_func_old_password::alloc(YYTHD, $3.str, $3.length) :
|
|
- Item_func_password::alloc(YYTHD, $3.str, $3.length) :
|
|
+ $$= $3.length ? thd->variables.old_passwords ?
|
|
+ Item_func_old_password::alloc(thd, $3.str, $3.length) :
|
|
+ Item_func_password::alloc(thd, $3.str, $3.length) :
|
|
$3.str;
|
|
if ($$ == NULL)
|
|
MYSQL_YYABORT;
|
|
}
|
|
| OLD_PASSWORD '(' TEXT_STRING ')'
|
|
{
|
|
- $$= $3.length ? Item_func_old_password::alloc(YYTHD, $3.str,
|
|
+ $$= $3.length ? Item_func_old_password::alloc(thd, $3.str,
|
|
$3.length) :
|
|
$3.str;
|
|
if ($$ == NULL)
|
|
@@ -13389,19 +13310,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;
|
|
}
|
|
@@ -13440,7 +13361,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)))
|
|
@@ -13511,7 +13432,7 @@ handler:
|
|
lex->expr_allows_subselect= FALSE;
|
|
lex->sql_command = SQLCOM_HA_READ;
|
|
lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
|
|
- 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;
|
|
@@ -13857,10 +13778,10 @@ grant_user:
|
|
MYSQL_YYABORT;
|
|
if ($4.length)
|
|
{
|
|
- if (YYTHD->variables.old_passwords)
|
|
+ if (thd->variables.old_passwords)
|
|
{
|
|
char *buff=
|
|
- (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
|
|
+ (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
|
|
if (buff == NULL)
|
|
MYSQL_YYABORT;
|
|
my_make_scrambled_password_323(buff, $4.str, $4.length);
|
|
@@ -13870,7 +13791,7 @@ grant_user:
|
|
else
|
|
{
|
|
char *buff=
|
|
- (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
|
|
+ (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
|
|
if (buff == NULL)
|
|
MYSQL_YYABORT;
|
|
my_make_scrambled_password(buff, $4.str, $4.length);
|
|
@@ -13923,7 +13844,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 <LEX_COLUMN> iter(Lex->columns);
|
|
@@ -14133,7 +14054,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;
|
|
@@ -14149,7 +14069,6 @@ union_order_or_limit:
|
|
}
|
|
order_or_limit
|
|
{
|
|
- THD *thd= YYTHD;
|
|
thd->lex->current_select->no_table_names_allowed= 0;
|
|
thd->where= "";
|
|
}
|
|
@@ -14331,14 +14250,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);
|
|
}
|
|
;
|
|
|
|
@@ -14383,7 +14302,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 */
|
|
@@ -14427,7 +14345,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);
|
|
@@ -14483,7 +14400,6 @@ trigger_tail:
|
|
EACH_SYM
|
|
ROW_SYM
|
|
{ /* $15 */
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
sp_head *sp;
|
|
@@ -14517,8 +14433,8 @@ trigger_tail:
|
|
sp_head *sp= lex->sphead;
|
|
|
|
lex->sql_command= SQLCOM_CREATE_TRIGGER;
|
|
- sp->set_stmt_end(YYTHD);
|
|
- sp->restore_thd_mem_root(YYTHD);
|
|
+ sp->set_stmt_end(thd);
|
|
+ sp->restore_thd_mem_root(thd);
|
|
|
|
if (sp->is_not_allowed_in_function("trigger"))
|
|
MYSQL_YYABORT;
|
|
@@ -14528,7 +14444,7 @@ trigger_tail:
|
|
sp_proc_stmt alternatives are not saving/restoring LEX, so
|
|
lex->query_tables can be wiped out.
|
|
*/
|
|
- if (!lex->select_lex.add_table_to_list(YYTHD, $9,
|
|
+ if (!lex->select_lex.add_table_to_list(thd, $9,
|
|
(LEX_STRING*) 0,
|
|
TL_OPTION_UPDATING,
|
|
TL_READ_NO_INSERT,
|
|
@@ -14547,7 +14463,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))
|
|
{
|
|
@@ -14565,7 +14480,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))
|
|
{
|
|
@@ -14588,7 +14502,6 @@ sf_tail:
|
|
sp_name /* $3 */
|
|
'(' /* $4 */
|
|
{ /* $5 */
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
sp_head *sp;
|
|
@@ -14646,7 +14559,7 @@ sf_tail:
|
|
MYSQL_YYABORT;
|
|
}
|
|
|
|
- if (sp->fill_field_definition(YYTHD, lex,
|
|
+ if (sp->fill_field_definition(thd, lex,
|
|
(enum enum_field_types) $11,
|
|
&sp->m_return_field_def))
|
|
MYSQL_YYABORT;
|
|
@@ -14655,7 +14568,6 @@ sf_tail:
|
|
}
|
|
sp_c_chistics /* $13 */
|
|
{ /* $14 */
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
Lex_input_stream *lip= YYLIP;
|
|
|
|
@@ -14664,7 +14576,6 @@ sf_tail:
|
|
}
|
|
sp_proc_stmt /* $15 */
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
sp_head *sp= lex->sphead;
|
|
|
|
@@ -14735,10 +14646,10 @@ sp_tail:
|
|
sp= new sp_head();
|
|
if (sp == NULL)
|
|
MYSQL_YYABORT;
|
|
- sp->reset_thd_mem_root(YYTHD);
|
|
+ sp->reset_thd_mem_root(thd);
|
|
sp->init(lex);
|
|
sp->m_type= TYPE_ENUM_PROCEDURE;
|
|
- sp->init_sp_name(YYTHD, $3);
|
|
+ sp->init_sp_name(thd, $3);
|
|
|
|
lex->sphead= sp;
|
|
}
|
|
@@ -14753,7 +14664,6 @@ sp_tail:
|
|
sp_pdparam_list
|
|
')'
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
|
|
lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
|
|
@@ -14761,7 +14671,6 @@ sp_tail:
|
|
}
|
|
sp_c_chistics
|
|
{
|
|
- THD *thd= YYTHD;
|
|
LEX *lex= thd->lex;
|
|
|
|
lex->sphead->m_chistics= &lex->sp_chistics;
|
|
@@ -14772,9 +14681,9 @@ sp_tail:
|
|
LEX *lex= Lex;
|
|
sp_head *sp= lex->sphead;
|
|
|
|
- sp->set_stmt_end(YYTHD);
|
|
+ sp->set_stmt_end(thd);
|
|
lex->sql_command= SQLCOM_CREATE_PROCEDURE;
|
|
- sp->restore_thd_mem_root(YYTHD);
|
|
+ sp->restore_thd_mem_root(thd);
|
|
}
|
|
;
|
|
|
|
@@ -14811,21 +14720,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());
|
|
}
|
|
--
|
|
1.8.4
|
|
|