From e76edf700ff787efffcf0b568e6f9fdc92b6d53f Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Thu, 21 Nov 2019 12:29:07 +0400 Subject: [PATCH] MDEV-21110 Unify turn_parser_debug_on() in sql_yacc.yy and sql_yacc_ora.yy The block defining turn_parser_debug_on() now looks similar in both sql_yacc.yy and sql_yacc_ora.yy. --- sql/sql_parse.cc | 3 ++- sql/sql_priv.h | 3 ++- sql/sql_yacc.yy | 4 +++- sql/sql_yacc_ora.yy | 25 +++++++++++++++++++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index b787f99e94a..62cf4674241 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -7904,7 +7904,8 @@ void mysql_parse(THD *thd, char *rawbuf, uint length, { int error __attribute__((unused)); DBUG_ENTER("mysql_parse"); - DBUG_EXECUTE_IF("parser_debug", turn_parser_debug_on();); + DBUG_EXECUTE_IF("parser_debug", turn_parser_debug_on_MYSQLparse();); + DBUG_EXECUTE_IF("parser_debug", turn_parser_debug_on_ORAparse();); /* Warning. diff --git a/sql/sql_priv.h b/sql/sql_priv.h index 7aca1d2b699..7be2692a33b 100644 --- a/sql/sql_priv.h +++ b/sql/sql_priv.h @@ -390,7 +390,8 @@ enum enum_yes_no_unknown /* sql_yacc.cc */ #ifndef DBUG_OFF -extern void turn_parser_debug_on(); +extern void turn_parser_debug_on_MYSQLparse(); +extern void turn_parser_debug_on_ORAparse(); #endif diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 02c7dcd5797..2657586cc42 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -153,7 +153,9 @@ static void yyerror(THD *thd, const char *s) #ifndef DBUG_OFF -void turn_parser_debug_on() +#define __CONCAT_UNDERSCORED(x,y) x ## _ ## y +#define _CONCAT_UNDERSCORED(x,y) __CONCAT_UNDERSCORED(x,y) +void _CONCAT_UNDERSCORED(turn_parser_debug_on,yyparse)() { /* MYSQLdebug is in sql/sql_yacc.cc, in bison generated code. diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy index bb0baf98318..6c4ed3c2c51 100644 --- a/sql/sql_yacc_ora.yy +++ b/sql/sql_yacc_ora.yy @@ -152,6 +152,31 @@ static void yyerror(THD *thd, const char *s) } +#ifndef DBUG_OFF +#define __CONCAT_UNDERSCORED(x,y) x ## _ ## y +#define _CONCAT_UNDERSCORED(x,y) __CONCAT_UNDERSCORED(x,y) +void _CONCAT_UNDERSCORED(turn_parser_debug_on,yyparse)() +{ + /* + MYSQLdebug is in sql/sql_yacc.cc, in bison generated code. + Turning this option on is **VERY** verbose, and should be + used when investigating a syntax error problem only. + + The syntax to run with bison traces is as follows : + - Starting a server manually : + mysqld --debug-dbug="d,parser_debug" ... + - Running a test : + mysql-test-run.pl --mysqld="--debug-dbug=d,parser_debug" ... + + The result will be in the process stderr (var/log/master.err) + */ + + extern int yydebug; + yydebug= 1; +} +#endif + + #define bincmp_collation(X,Y) \ do \ { \