Skip to content

Commit bf30341

Browse files
vaintroubabarkov
authored andcommitted
Part2: MDEV-12518 Unify sql_yacc.yy and sql_yacc_ora.yy
Generate sql_yacc_ora.yy from sql_yacc.yy , by using cmake script which does some simple string(REPLACE)
1 parent 3f9d707 commit bf30341

File tree

5 files changed

+40
-19058
lines changed

5 files changed

+40
-19058
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ sql/sql_yacc.cc
173173
sql/sql_yacc.hh
174174
sql/sql_yacc_ora.cc
175175
sql/sql_yacc_ora.hh
176+
sql/sql_yacc_ora.yy
176177
storage/heap/hp_test1
177178
storage/heap/hp_test2
178179
storage/maria/aria_chk

sql/CMakeLists.txt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,17 @@ ADD_CUSTOM_COMMAND(
6262
DEPENDS gen_lex_token
6363
)
6464

65+
ADD_CUSTOM_COMMAND(
66+
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.yy
67+
COMMAND ${CMAKE_COMMAND}
68+
"-DIN=${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.yy"
69+
"-DOUT=${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.yy"
70+
-P ${CMAKE_CURRENT_SOURCE_DIR}/gen_sql_yacc_ora_yy.cmake
71+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.yy
72+
)
73+
74+
ADD_CUSTOM_TARGET(gen_sql_yacc_ora_yy DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.yy)
75+
6576
ADD_DEFINITIONS(-DMYSQL_SERVER -DHAVE_EVENT_SCHEDULER)
6677

6778
IF(SSL_DEFINES)
@@ -367,8 +378,7 @@ IF (NOT BISON_FOUND)
367378
ELSE()
368379
BISON_TARGET(gen_sql_yacc ${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.yy ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.cc
369380
COMPILE_FLAGS "-p MYSQL")
370-
371-
BISON_TARGET(gen_sql_yacc_ora ${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc_ora.yy ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.cc
381+
BISON_TARGET(gen_sql_yacc_ora ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.yy ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.cc
372382
COMPILE_FLAGS "-p ORA")
373383
ENDIF()
374384

@@ -396,6 +406,8 @@ ADD_CUSTOM_TARGET(
396406
${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.cc
397407
)
398408

409+
ADD_DEPENDENCIES(GenServerSource gen_sql_yacc_ora_yy)
410+
399411
IF(WIN32 OR HAVE_DLOPEN AND NOT DISABLE_SHARED)
400412
ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
401413
SET_TARGET_PROPERTIES(udf_example PROPERTIES PREFIX "")

sql/gen_sql_yacc_ora_yy.cmake

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
file(READ "${IN}" yytmp)
3+
4+
# Comment out sql_mode=DEFAULT rules and directives (e.g. %expect, %type)
5+
string(REPLACE "/* Start SQL_MODE_DEFAULT_SPECIFIC */"
6+
"/* Start SQL_MODE_DEFAULT_SPECIFIC" yytmp "${yytmp}")
7+
string(REPLACE "/* End SQL_MODE_DEFAULT_SPECIFIC */"
8+
"End SQL_MODE_DEFAULT_SPECIFIC */" yytmp "${yytmp}")
9+
10+
# Uncomment sql_mode=ORACLE rules and directives
11+
string(REPLACE "/* Start SQL_MODE_ORACLE_SPECIFIC"
12+
"/* Start SQL_MODE_ORACLE_SPECIFIC */" yytmp "${yytmp}")
13+
string(REPLACE "End SQL_MODE_ORACLE_SPECIFIC */"
14+
"/* End SQL_MODE_ORACLE_SPECIFIC */" yytmp "${yytmp}")
15+
file(WRITE "${OUT}" "${yytmp}")

sql/sql_yacc.yy

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -322,14 +322,16 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
322322
/*
323323
We should not introduce new conflicts any more.
324324
*/
325-
//%{#ifdef SQL_MODE_DEFAULT_SPECIFIC
325+
326+
/* Start SQL_MODE_DEFAULT_SPECIFIC */
326327
%expect 37
327-
//#endif %} // SQL_MODE_DEFAULT_SPECIFIC
328+
/* End SQL_MODE_DEFAULT_SPECIFIC */
328329

329330

330-
%{#ifdef SQL_MODE_ORACLE_SPECIFIC
331+
/* Start SQL_MODE_ORACLE_SPECIFIC
331332
%expect 40
332-
#endif %} // SQL_MODE_ORACLE_SPECIFIC
333+
End SQL_MODE_ORACLE_SPECIFIC */
334+
333335

334336
/*
335337
Comments for TOKENS.
@@ -1721,7 +1723,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
17211723
%type <vers_history_point> history_point
17221724
%type <vers_column_versioning> with_or_without_system
17231725

1724-
//%{#ifdef SQL_MODE_DEFAULT_SPECIFIC
1726+
/* Start SQL_MODE_DEFAULT_SPECIFIC */
17251727
%type <NONE> sp_tail_standalone
17261728
%type <NONE> sp_unlabeled_block_not_atomic
17271729
%type <NONE> sp_proc_stmt_in_returns_clause
@@ -1733,10 +1735,10 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
17331735
%type <spblock> sp_decl_variable_list
17341736
%type <spblock> sp_decl_variable_list_anchored
17351737
%type <kwd> reserved_keyword_udt_param_type
1736-
//#endif %} // SQL_MODE_DEFAULT_SPECIFIC
1738+
/* End SQL_MODE_DEFAULT_SPECIFIC */
17371739

17381740

1739-
%{#ifdef SQL_MODE_ORACLE_SPECIFIC
1741+
/* Start SQL_MODE_ORACLE_SPECIFIC
17401742
%type <NONE> set_assign
17411743
%type <spvar_mode> sp_opt_inout
17421744
%type <NONE> sp_tail_standalone
@@ -1771,7 +1773,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
17711773
%type <lex> package_routine_lex
17721774
%type <lex> package_specification_function
17731775
%type <lex> package_specification_procedure
1774-
#endif %} // SQL_MODE_ORACLE_SPECIFIC
1776+
End SQL_MODE_ORACLE_SPECIFIC */
17751777

17761778
%%
17771779

0 commit comments

Comments
 (0)