bugfix: json_object_t on_error && json_object_t duplicate key && regression case

This commit is contained in:
wu-xingying
2023-09-20 16:50:01 +00:00
committed by ob-robot
parent 98d6d32ccc
commit 7df46cab65
5 changed files with 24 additions and 8 deletions

View File

@ -1887,13 +1887,13 @@ int ObSqlParameterization::mark_tree(ParseNode *tree ,SqlInfo &sql_info)
}
}
} else if(T_FUN_SYS_JSON_QUERY == tree->type_) {
if (10 != tree->num_child_) {
if (11 != tree->num_child_) {
ret = OB_INVALID_ARGUMENT;
SQL_PC_LOG(WARN, "invalid json query expr argument", K(ret), K(tree->num_child_));
} else {
const int64_t ARGS_NUMBER_TEN = 10;
bool mark_arr[ARGS_NUMBER_TEN] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; // json doc type will affect returning type,
if (OB_FAIL(mark_args(tree, mark_arr, ARGS_NUMBER_TEN, sql_info))) {
const int64_t ARGS_NUMBER_ELEVEN = 11;
bool mark_arr[ARGS_NUMBER_ELEVEN] = {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; // json doc type will affect returning type,
if (OB_FAIL(mark_args(tree, mark_arr, ARGS_NUMBER_ELEVEN, sql_info))) {
SQL_PC_LOG(WARN, "fail to mark substr arg", K(ret));
}
}