[CP] [to #54164583] close result set when response query header fail.
This commit is contained in:
@ -100,6 +100,11 @@ int ObAsyncPlanDriver::response_result(ObMySQLResultSet &result)
|
||||
* 3. response_query_header & flush_buffer 不会产生需要重试的报错,此位置是 ObAsyncPlanDriver 重试前的一步,中间不会有别的可能重试的操作
|
||||
* 4. ps stmt 清理要注意异步回包的情况,可能需要在异步包里面做清理
|
||||
*/
|
||||
// need close result set
|
||||
int close_ret = OB_SUCCESS;
|
||||
if (OB_SUCCESS != (close_ret = result.close())) {
|
||||
LOG_WARN("close result failed", K(close_ret));
|
||||
}
|
||||
LOG_WARN("prexecute response query head fail. ", K(ret));
|
||||
} else if (result.is_with_rows()) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
|
||||
@ -173,6 +173,11 @@ int ObSyncCmdDriver::response_result(ObMySQLResultSet &result)
|
||||
} else if (is_prexecute_) {
|
||||
if (OB_FAIL(response_query_header(result, false, false , // in prexecute , has_more_result and has_ps out is no matter, it will be recalc
|
||||
true))) {
|
||||
// need close result set
|
||||
int close_ret = OB_SUCCESS;
|
||||
if (OB_SUCCESS != (close_ret = result.close())) {
|
||||
LOG_WARN("close result failed", K(close_ret));
|
||||
}
|
||||
LOG_WARN("prexecute response query head fail. ", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
@ -189,6 +189,11 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result)
|
||||
}
|
||||
} else {
|
||||
if (is_prexecute_ && OB_FAIL(response_query_header(result, false, false, true))) {
|
||||
// need close result set
|
||||
int close_ret = OB_SUCCESS;
|
||||
if (OB_SUCCESS != (close_ret = result.close())) {
|
||||
LOG_WARN("close result failed", K(close_ret));
|
||||
}
|
||||
LOG_WARN("prexecute response query head fail. ", K(ret));
|
||||
} else if (OB_FAIL(result.close())) {
|
||||
LOG_WARN("close result set fail", K(ret));
|
||||
|
||||
Reference in New Issue
Block a user