[BUGFIX] fix lob locator helper print row id for last row
This commit is contained in:
2
deps/oblib/src/common/object/ob_object.h
vendored
2
deps/oblib/src/common/object/ob_object.h
vendored
@ -640,7 +640,7 @@ enum ObMemLobType
|
|||||||
MAX_LOB_TYPE
|
MAX_LOB_TYPE
|
||||||
};
|
};
|
||||||
|
|
||||||
// Memory Locator V2, Common Header, https://yuque.antfin.com/ob/gtuwei/mo6g8w
|
// Memory Locator V2, Common Header, sz/mo6g8w
|
||||||
// Notice: Do not add or remove fields from this sturct!
|
// Notice: Do not add or remove fields from this sturct!
|
||||||
// 8 bytes
|
// 8 bytes
|
||||||
struct ObMemLobCommon
|
struct ObMemLobCommon
|
||||||
|
|||||||
@ -516,7 +516,7 @@ int ObQueryDriver::process_lob_locator_results(ObObj& value,
|
|||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
// 1. if client is_use_lob_locator, return lob locator
|
// 1. if client is_use_lob_locator, return lob locator
|
||||||
// 2. if client is_use_lob_locator, but not support outrow lob, return lob locator with inrow data
|
// 2. if client is_use_lob_locator, but not support outrow lob, return lob locator with inrow data
|
||||||
// refer to https://yuque.antfin.com/ob/gtuwei/aibo1m
|
// refer to sz/aibo1m
|
||||||
// 3. if client does not support use_lob_locator ,,return full lob data without locator header
|
// 3. if client does not support use_lob_locator ,,return full lob data without locator header
|
||||||
bool is_lob_type = value.is_lob() || value.is_json() || value.is_geometry() || value.is_lob_locator();
|
bool is_lob_type = value.is_lob() || value.is_json() || value.is_geometry() || value.is_lob_locator();
|
||||||
if (!is_lob_type) {
|
if (!is_lob_type) {
|
||||||
|
|||||||
@ -483,7 +483,7 @@ int ObExprOutputPack::process_lob_locator_results(common::ObObj& value,
|
|||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
// 1. if client is_use_lob_locator, return lob locator
|
// 1. if client is_use_lob_locator, return lob locator
|
||||||
// 2. if client is_use_lob_locator, but not support outrow lob, return lob locator with inrow data
|
// 2. if client is_use_lob_locator, but not support outrow lob, return lob locator with inrow data
|
||||||
// refer to https://yuque.antfin.com/ob/gtuwei/aibo1m
|
// refer to sz/aibo1m
|
||||||
// 3. if client does not support use_lob_locator ,,return full lob data without locator header
|
// 3. if client does not support use_lob_locator ,,return full lob data without locator header
|
||||||
bool is_use_lob_locator = my_session.is_client_use_lob_locator();
|
bool is_use_lob_locator = my_session.is_client_use_lob_locator();
|
||||||
bool is_support_outrow_locator_v2 = my_session.is_client_support_lob_locatorv2();
|
bool is_support_outrow_locator_v2 = my_session.is_client_support_lob_locatorv2();
|
||||||
|
|||||||
@ -27,7 +27,11 @@ public:
|
|||||||
ObLobLocatorHelper();
|
ObLobLocatorHelper();
|
||||||
virtual ~ObLobLocatorHelper();
|
virtual ~ObLobLocatorHelper();
|
||||||
void reset();
|
void reset();
|
||||||
void reuse() { locator_allocator_.reuse(); }
|
void reuse() {
|
||||||
|
locator_allocator_.reuse();
|
||||||
|
rowid_objs_.reuse();
|
||||||
|
rowkey_str_.reset();
|
||||||
|
}
|
||||||
int init(const ObTableScanParam &scan_param,
|
int init(const ObTableScanParam &scan_param,
|
||||||
const ObStoreCtx &ctx,
|
const ObStoreCtx &ctx,
|
||||||
const share::ObLSID &ls_id,
|
const share::ObLSID &ls_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user