From 31f4971673b8eb949b2126f11c7dae34e1ef39b2 Mon Sep 17 00:00:00 2001 From: shadowao Date: Wed, 17 Jul 2024 09:17:48 +0000 Subject: [PATCH] [CP] fix core when update lob to default value in non strict sql mode --- deps/oblib/src/common/object/ob_object.cpp | 2 +- src/storage/ls/ob_ls_tablet_service.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/deps/oblib/src/common/object/ob_object.cpp b/deps/oblib/src/common/object/ob_object.cpp index ef926a9148..84e7891e99 100644 --- a/deps/oblib/src/common/object/ob_object.cpp +++ b/deps/oblib/src/common/object/ob_object.cpp @@ -270,7 +270,7 @@ DEF_TO_STRING(ObLobLocatorV2) int64_t pos = 0; uint32_t offset = 0; J_OBJ_START(); - J_KV(K_(ptr), K_(size), K_(has_lob_header)); + J_KV(KP_(ptr), K_(size), K_(has_lob_header)); J_COMMA(); if (OB_ISNULL(ptr_)) { diff --git a/src/storage/ls/ob_ls_tablet_service.cpp b/src/storage/ls/ob_ls_tablet_service.cpp index 8d4276b16f..622326d2a3 100644 --- a/src/storage/ls/ob_ls_tablet_service.cpp +++ b/src/storage/ls/ob_ls_tablet_service.cpp @@ -4569,7 +4569,9 @@ int ObLSTabletService::process_lob_row( // get new lob locator ObString new_lob_str = (new_obj.is_null() || new_obj.is_nop_value()) ? ObString(0, nullptr) : new_obj.get_string(); - ObLobLocatorV2 new_lob(new_lob_str, new_obj.has_lob_header()); + // for not strict sql mode, will insert empty string without lob header + bool has_lob_header = new_obj.has_lob_header() && new_lob_str.length() > 0; + ObLobLocatorV2 new_lob(new_lob_str, has_lob_header); if (OB_FAIL(ret)) { } else if (new_obj.is_null() || new_obj.is_nop_value() ||