mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
WL#3432 (Compile the Parser with a --debug --verbose option)
Changed the automake build process : - ./configure.in - ./sql/Makefile.am to compile an instrumented parser for debug=yes or debug=full builds Changed the (primary) runtime invocation of the parser : - sql/sql_parse.cc to generate bison traces in stderr when the DBUG "parser_debug" flag is set.
This commit is contained in:
@@ -1667,6 +1667,7 @@ else
|
|||||||
CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS"
|
CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS"
|
||||||
CXXFLAGS="$OPTIMIZE_CXXFLAGS -DDBUG_OFF $CXXFLAGS"
|
CXXFLAGS="$OPTIMIZE_CXXFLAGS -DDBUG_OFF $CXXFLAGS"
|
||||||
fi
|
fi
|
||||||
|
AM_CONDITIONAL(MYSQL_CONF_DEBUG, test "x$with_debug" != "xno")
|
||||||
|
|
||||||
# Force static compilation to avoid linking problems/get more speed
|
# Force static compilation to avoid linking problems/get more speed
|
||||||
AC_ARG_WITH(mysqld-ldflags,
|
AC_ARG_WITH(mysqld-ldflags,
|
||||||
|
@@ -117,9 +117,14 @@ DEFS = -DMYSQL_SERVER \
|
|||||||
|
|
||||||
BUILT_SOURCES = sql_yacc.cc sql_yacc.h lex_hash.h
|
BUILT_SOURCES = sql_yacc.cc sql_yacc.h lex_hash.h
|
||||||
EXTRA_DIST = $(BUILT_SOURCES)
|
EXTRA_DIST = $(BUILT_SOURCES)
|
||||||
DISTCLEANFILES = lex_hash.h
|
DISTCLEANFILES = lex_hash.h sql_yacc.output
|
||||||
|
|
||||||
AM_YFLAGS = -d
|
AM_YFLAGS = -d
|
||||||
|
|
||||||
|
if MYSQL_CONF_DEBUG
|
||||||
|
AM_YFLAGS += --debug --verbose
|
||||||
|
endif
|
||||||
|
|
||||||
mysql_tzinfo_to_sql.cc:
|
mysql_tzinfo_to_sql.cc:
|
||||||
rm -f mysql_tzinfo_to_sql.cc
|
rm -f mysql_tzinfo_to_sql.cc
|
||||||
@LN_CP_F@ $(srcdir)/tztime.cc mysql_tzinfo_to_sql.cc
|
@LN_CP_F@ $(srcdir)/tztime.cc mysql_tzinfo_to_sql.cc
|
||||||
|
@@ -5776,6 +5776,26 @@ void mysql_init_multi_delete(LEX *lex)
|
|||||||
lex->query_tables_last= &lex->query_tables;
|
lex->query_tables_last= &lex->query_tables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef DBUG_OFF
|
||||||
|
static void turn_parser_debug_on()
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
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="d,parser_debug" ...
|
||||||
|
- Running a test :
|
||||||
|
mysql-test-run.pl --mysqld="--debug=d,parser_debug" ...
|
||||||
|
|
||||||
|
The result will be in the process stderr (var/log/master.err)
|
||||||
|
*/
|
||||||
|
extern int MYSQLdebug;
|
||||||
|
MYSQLdebug= 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
When you modify mysql_parse(), you may need to mofify
|
When you modify mysql_parse(), you may need to mofify
|
||||||
@@ -5785,6 +5805,9 @@ void mysql_init_multi_delete(LEX *lex)
|
|||||||
void mysql_parse(THD *thd, char *inBuf, uint length)
|
void mysql_parse(THD *thd, char *inBuf, uint length)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("mysql_parse");
|
DBUG_ENTER("mysql_parse");
|
||||||
|
|
||||||
|
DBUG_EXECUTE_IF("parser_debug", turn_parser_debug_on(););
|
||||||
|
|
||||||
mysql_init_query(thd, (uchar*) inBuf, length);
|
mysql_init_query(thd, (uchar*) inBuf, length);
|
||||||
if (query_cache_send_result_to_client(thd, inBuf, length) <= 0)
|
if (query_cache_send_result_to_client(thd, inBuf, length) <= 0)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user