diff --git a/src/observer/virtual_table/ob_table_columns.cpp b/src/observer/virtual_table/ob_table_columns.cpp index a9dec4b133..428be11952 100644 --- a/src/observer/virtual_table/ob_table_columns.cpp +++ b/src/observer/virtual_table/ob_table_columns.cpp @@ -1145,7 +1145,9 @@ bool ObTableColumns::can_rewrite_error_code(const int ret) { bool res = true; if (OB_ALLOCATE_MEMORY_FAILED == ret - || OB_SQL_RESOLVER_NO_MEMORY == ret) { + || OB_SQL_RESOLVER_NO_MEMORY == ret + || OB_TIMEOUT == ret + || OB_EAGAIN == ret) { res = false; } return res; diff --git a/src/sql/engine/px/exchange/ob_px_ms_coord_vec_op.cpp b/src/sql/engine/px/exchange/ob_px_ms_coord_vec_op.cpp index 69e7fc12be..f27ac2dd97 100644 --- a/src/sql/engine/px/exchange/ob_px_ms_coord_vec_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_ms_coord_vec_op.cpp @@ -106,7 +106,7 @@ ObPxMSCoordVecOp::ObPxMSCoordVecOp(ObExecContext &exec_ctx, const ObOpSpec &spec reader_cnt_(0), alloc_(), single_row_brs_(), - output_store_(&exec_ctx.get_allocator()) + output_store_() { } @@ -117,6 +117,7 @@ void ObPxMSCoordVecOp::destroy() store_rows_.reset(); destroy_readers(); alloc_.reset(); + output_store_.~ObTempRowStore(); // no need to reset receive_order_ // no need to reset interrupt_proc_ // no need to reset sqc_init_msg_proc_ diff --git a/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp b/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp index 29d1a16e15..36b524e606 100644 --- a/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp @@ -72,6 +72,7 @@ ObPxMSReceiveVecOp::ObPxMSReceiveVecOp(ObExecContext &exec_ctx, const ObOpSpec & void ObPxMSReceiveVecOp::destroy() { sql_mem_processor_.unregister_profile_if_necessary(); + output_store_.~ObTempRowStore(); if (nullptr != mem_context_) { DESTROY_CONTEXT(mem_context_); mem_context_ = nullptr;