[CP] [to #2024081300104109646] fix: improper plan cache generating mode cause unexpected disconnection

This commit is contained in:
haohao022
2024-11-11 11:44:37 +00:00
committed by ob-robot
parent 2b726347de
commit 2d4946bc21

View File

@ -868,7 +868,12 @@ int ObSql::fill_select_result_set(ObResultSet &result_set, ObSqlCtx *context, co
|| PL_NESTED_TABLE_TYPE == expr->get_result_type().get_extend_type()
|| PL_ASSOCIATIVE_ARRAY_TYPE == expr->get_result_type().get_extend_type()
|| PL_RECORD_TYPE == expr->get_result_type().get_extend_type())) {
if (PC_PS_MODE == mode || PC_PL_MODE == mode) {
if (PC_TEXT_MODE == mode
&& NULL == context->secondary_namespace_
&& NULL == context->session_info_->get_pl_context()) {
// Text protocol convert extend type field to varchar
field.type_.set_varchar(type_name);
} else {
const ObUDTTypeInfo *udt_info = NULL;
const ObSimpleDatabaseSchema *db_schema = NULL;
uint64_t udt_id = expr->get_result_type().get_udt_id();
@ -888,9 +893,6 @@ int ObSql::fill_select_result_set(ObResultSet &result_set, ObSqlCtx *context, co
} else if (OB_FAIL(ob_write_string(alloc, db_schema->get_database_name_str(), field.type_owner_))) {
LOG_WARN("fail to alloc string", K(db_schema->get_database_name_str()), K(ret));
}
} else {
// Text protocol convert extend type field to varchar
field.type_.set_varchar(type_name);
}
} else if (!expr->get_result_type().is_ext() && OB_FAIL(expr->get_length_for_meta_in_bytes(field.length_))) {
LOG_WARN("get length failed", K(ret), KPC(expr));