implement sql_mode NO_BACKSLASH_ESCAPES

This commit is contained in:
Monk-Liu
2021-11-29 11:36:40 +08:00
committed by LINxiansheng
parent a2b5b77779
commit bd258f9338
5 changed files with 171 additions and 151 deletions

View File

@ -574,7 +574,10 @@ FALSE {
COPY_STR_NODE_TO_TMP_LITERAL(yylval->node);
bool is_real_escape = true;
CHECK_REAL_ESCAPE(is_real_escape);
if (!is_real_escape) {
ObSQLMode mode = p->sql_mode_;
bool is_no_backslash_escapes = false;
IS_NO_BACKSLASH_ESCAPES(mode, is_no_backslash_escapes);
if (!is_real_escape || is_no_backslash_escapes) {
HANDLE_FALSE_ESCAPE(p);
} else {
HANDLE_ESCAPE(p);
@ -695,7 +698,11 @@ FALSE {
check_value(yylval);
bool is_real_escape = true;
CHECK_REAL_ESCAPE(is_real_escape);
if (!is_real_escape) {
//check sql_mode
ObSQLMode mode = p->sql_mode_;
bool is_no_backslash_escapes = false;
IS_NO_BACKSLASH_ESCAPES(mode, is_no_backslash_escapes);
if (!is_real_escape || is_no_backslash_escapes) {
HANDLE_FALSE_ESCAPE(p);
} else {
HANDLE_ESCAPE(p);

File diff suppressed because it is too large Load Diff

View File

@ -72267,7 +72267,7 @@ extern int obsql_mysql_yylex \
#undef YY_DECL
#endif
#line 1472 "../../../src/sql/parser/sql_parser_mysql_mode.l"
#line 1479 "../../../src/sql/parser/sql_parser_mysql_mode.l"
#line 72274 "../../../src/sql/parser/sql_parser_mysql_mode_lex.h"