[CP] [bugfix]: avoid select xxx(a''); raise core.

This commit is contained in:
Monk-Liu 2022-09-07 04:33:16 +00:00 committed by wangzelin.wzl
parent 69318f4d38
commit 0336a92981

View File

@ -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;
}
}