From 0cabd5474236d27467aef4b74c76b31ca1ecfa99 Mon Sep 17 00:00:00 2001 From: LiuYoung00 Date: Wed, 26 Jul 2023 10:12:46 +0000 Subject: [PATCH] [to #50408284]spi_result need close result set first --- src/sql/ob_spi.cpp | 7 +++++++ src/sql/ob_spi.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/sql/ob_spi.cpp b/src/sql/ob_spi.cpp index 6dcc434aac..69198e0542 100644 --- a/src/sql/ob_spi.cpp +++ b/src/sql/ob_spi.cpp @@ -3505,6 +3505,13 @@ int ObSPIService::spi_cursor_open(ObPLExecCtx *ctx, spi_result->end_cursor_stmt(ctx, ret); if (!need_destruct && OB_SUCCESS != ret) { need_destruct = true; + if (OB_NOT_NULL(spi_result->get_result_set())) { + // 此分支所有错误码都被吞掉,最终返回最初的错误码 + int close_ret = spi_result->close_result_set(); + if (OB_SUCCESS != close_ret) { + LOG_WARN("close mysql result set failed", K(ret), K(close_ret)); + } + } } } if (need_destruct) { diff --git a/src/sql/ob_spi.h b/src/sql/ob_spi.h index 3935f4897b..c0df2e4940 100644 --- a/src/sql/ob_spi.h +++ b/src/sql/ob_spi.h @@ -111,7 +111,7 @@ public: need_end_nested_stmt_(EST_NEED_NOT), mem_context_(nullptr), mem_context_destroy_guard_(mem_context_), - allocator_(ObModIds::OB_PL_TEMP), + allocator_(ObModIds::OB_PL_TEMP, OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()), result_set_(NULL), sql_ctx_(), schema_guard_(share::schema::ObSchemaMgrItem::MOD_SPI_RESULT_SET),