bugfix : json dot notation bugfix patch to master

This commit is contained in:
obdev
2024-02-08 17:32:07 +00:00
committed by ob-robot
parent 81e0cd0938
commit 90b7fe53bb
13 changed files with 342 additions and 244 deletions

View File

@ -2233,6 +2233,9 @@ int ObRawExprResolverImpl::resolve_left_node_of_obj_access_idents(const ParseNod
|| T_FUN_SYS_XMLPARSE == left_node.type_
|| T_FUN_ORA_XMLAGG == left_node.type_) {
OZ (resolve_func_node_of_obj_access_idents(left_node, q_name));
} else if (left_node.type_ == T_LINK_NODE && left_node.value_ == 3) {
ret = OB_ERR_PARSER_SYNTAX; // array not in object access ref : array[1]
LOG_WARN("input invalid arguments", K(ret));
} else {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("left node of obj access ref node not T_IDENT/T_QUESTIONMARK/T_FUN_SYS", K(ret), K(left_node.type_));
@ -5701,7 +5704,7 @@ int ObRawExprResolverImpl::process_json_query_node(const ParseNode *node, ObRawE
ObSysFunRawExpr *func_expr = NULL;
if (OB_SUCC(ret)) {
num = node->num_child_;
ctx_.expr_factory_.create_raw_expr(T_FUN_SYS, func_expr);
ctx_.expr_factory_.create_raw_expr(T_FUN_SYS_JSON_QUERY, func_expr);
CK(OB_NOT_NULL(func_expr));
OX(func_expr->set_func_name(ObString::make_string("json_query")));
}