From 0336a92981689d0764d7b6468f2cf35d8dcc3452 Mon Sep 17 00:00:00 2001 From: Monk-Liu <1152761042@qq.com> Date: Wed, 7 Sep 2022 04:33:16 +0000 Subject: [PATCH] [CP] [bugfix]: avoid select xxx(a''); raise core. --- src/sql/parser/sql_parser_mysql_mode.y | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/sql/parser/sql_parser_mysql_mode.y b/src/sql/parser/sql_parser_mysql_mode.y index d4024bcbd..2b0b54eac 100644 --- a/src/sql/parser/sql_parser_mysql_mode.y +++ b/src/sql/parser/sql_parser_mysql_mode.y @@ -620,12 +620,22 @@ expr opt_as column_label ParseNode *alias_node = NULL; ParseNode *alias_name_node = NULL; malloc_terminal_node(alias_name_node, result->malloc_pool_, T_IDENT); - dup_node_string($3, alias_name_node, result->malloc_pool_); + if (0 == $3->str_len_) { + alias_name_node->str_value_ = NULL; + alias_name_node->str_len_ = 0; + } else { + dup_node_string($3, alias_name_node, result->malloc_pool_); + } malloc_non_terminal_node(alias_node, result->malloc_pool_, T_ALIAS, 2, $1, alias_name_node); malloc_non_terminal_node($$, result->malloc_pool_, T_EXPR_WITH_ALIAS, 1, alias_node); dup_expr_string($$, result, @3.first_column, @3.last_column); - dup_node_string($3, alias_node, result->malloc_pool_); + if (0 == $3->str_len_) { + alias_node->str_value_ = NULL; + alias_node->str_len_ = 0; + } else { + dup_node_string($3, alias_node, result->malloc_pool_); + } alias_node->param_num_ = 1; } }