bugfix: select into outfile const number of fast parse and normal parse is different

This commit is contained in:
dontknow9179
2024-07-05 09:16:41 +00:00
committed by ob-robot
parent 7a69d9c304
commit c67088f750
2 changed files with 7 additions and 4 deletions

View File

@ -10331,9 +10331,7 @@ file_option:
SINGLE opt_equal_mark BOOL_VALUE SINGLE opt_equal_mark BOOL_VALUE
{ {
(void)($2); (void)($2);
malloc_terminal_node($$, result->malloc_pool_, T_SINGLE_OPT); malloc_non_terminal_node($$, result->malloc_pool_, T_SINGLE_OPT, 1, $3);
$$->value_ = $3->value_;
$$->is_hidden_const_ = 1;
} }
| MAX_FILE_SIZE opt_equal_mark file_size_const | MAX_FILE_SIZE opt_equal_mark file_size_const
{ {

View File

@ -5088,7 +5088,12 @@ int ObSelectResolver::resolve_into_file_node(const ParseNode *list_node, ObSelec
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
LOG_WARN("child of list node is null", K(ret)); LOG_WARN("child of list node is null", K(ret));
} else if (T_SINGLE_OPT == node->type_) { } else if (T_SINGLE_OPT == node->type_) {
into_item.is_single_ = node->value_; if (node->num_child_ != 1 || OB_ISNULL(node->children_[0])) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("get unexpected single node", K(ret));
} else {
into_item.is_single_ = node->children_[0]->value_;
}
} else if (T_MAX_FILE_SIZE == node->type_) { } else if (T_MAX_FILE_SIZE == node->type_) {
if (OB_FAIL(resolve_max_file_size_node(node, into_item))) { if (OB_FAIL(resolve_max_file_size_node(node, into_item))) {
LOG_WARN("failed to resolve max file size", K(ret)); LOG_WARN("failed to resolve max file size", K(ret));