to issue<48443639>:fix insert table values record core
This commit is contained in:
parent
bbd67d669d
commit
a1b98f9700
@ -2244,10 +2244,16 @@ int ObDelUpdResolver::expand_record_to_columns(const ParseNode &record_node,
|
||||
const pl::ObUserDefinedType *user_type = NULL;
|
||||
ParseNode *column_node = NULL;
|
||||
const ParseNode *member_node = &record_node;
|
||||
while (NULL != member_node && NULL != member_node->children_[1]) {
|
||||
bool multi_level_count = 0;
|
||||
while (NULL != member_node && member_node->num_child_ > 1 && NULL != member_node->children_[1]) {
|
||||
member_node = member_node->children_[1];
|
||||
multi_level_count++;
|
||||
}
|
||||
if (OB_ISNULL(column_node = new_terminal_node(allocator_, T_IDENT))) {
|
||||
if (multi_level_count > 0) {
|
||||
ret = OB_NOT_SUPPORTED;
|
||||
LOG_WARN("not support to expand", K(composite_type), K(ret));
|
||||
LOG_USER_ERROR(OB_NOT_SUPPORTED, "mutil level record reference");
|
||||
} else if (OB_ISNULL(column_node = new_terminal_node(allocator_, T_IDENT))) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_WARN("make db name T_IDENT node failed", K(ret));
|
||||
} else if (OB_ISNULL(member_node->children_[1] = new_non_terminal_node(allocator_,
|
||||
|
Loading…
x
Reference in New Issue
Block a user