From 69b60bf9212aaa6647c128e073ecb0150314026f Mon Sep 17 00:00:00 2001 From: helloamateur Date: Fri, 29 Nov 2024 18:16:00 +0000 Subject: [PATCH] [ARRAY] fix array push_back with [null] --- deps/oblib/src/lib/udt/ob_array_type.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/oblib/src/lib/udt/ob_array_type.cpp b/deps/oblib/src/lib/udt/ob_array_type.cpp index a8d8183e0..39932c330 100644 --- a/deps/oblib/src/lib/udt/ob_array_type.cpp +++ b/deps/oblib/src/lib/udt/ob_array_type.cpp @@ -552,7 +552,7 @@ int ObArrayBinary::insert_from(const ObIArrayType &src, uint32_t begin, uint32_t } else if (OB_ISNULL(data_container_)) { ret = OB_ERR_UNEXPECTED; OB_LOG(WARN, "try to modify read-only array", K(ret)); - } else { + } else if (len > 0) { // insert data const uint32_t src_offset = offset_at(begin, src.get_offsets()); uint32_t src_len = src.get_offsets()[begin + len - 1] - src_offset; @@ -1112,7 +1112,7 @@ int ObArrayNested::insert_from(const ObIArrayType &src, uint32_t begin, uint32_t } } // insert data - if (OB_SUCC(ret)) { + if (OB_SUCC(ret) && len > 0) { uint32_t start = offset_at(begin, src.get_offsets()); uint32_t child_len = src.get_offsets()[begin + len - 1] - start; const ObIArrayType *child_arr = static_cast(src).get_child_array();