bugfix : json_object, json_query, json_objectagg

This commit is contained in:
obdev
2023-11-22 07:10:37 +00:00
committed by ob-robot
parent 72ec4556de
commit 28fc6f4729
2 changed files with 9 additions and 2 deletions

View File

@ -7056,7 +7056,7 @@ int ObAggregateProcessor::get_ora_json_objectagg_result(const ObAggrInfo &aggr_i
bool need_key_string_convert = (ObCharset::charset_type_by_coll(cs_type_key) != CHARSET_UTF8MB4);
if (OB_ISNULL(key_string.ptr())) {
if (OB_ISNULL(key_string.ptr()) || key_string.length() == 0) {
ret = OB_ERR_NULL_VALUE;
LOG_WARN("unexpected null result", K(ret));
} else if (is_absent_on_null && ob_is_null(type_value)) {

View File

@ -1629,8 +1629,15 @@ int ObJsonExprHelper::calc_asciistr_in_expr(const ObString &src,
buf[pos++] = '\\';
}
if (OB_SUCC(ret) && '\\' != wchar) {
if (OB_UNLIKELY(pos >= buf_len)) {
ret = OB_SIZE_OVERFLOW;
LOG_WARN("size overflow", K(ret), K(pos), K(buf_len));
} else {
buf[pos++] = 'u';
}
int64_t hex_writtern_bytes = 0;
if (OB_FAIL(hex_print(temp_buf + i*utf16_minmb_len, utf16_minmb_len,
if (OB_FAIL(ret)) {
} else if (OB_FAIL(hex_print(temp_buf + i*utf16_minmb_len, utf16_minmb_len,
buf + pos, buf_len - pos, hex_writtern_bytes))) {
LOG_WARN("fail to convert to hex", K(ret), K(temp_written_bytes), K(pos), K(buf_len));
} else {