[CP] [to #2024101600104722369] do not change ps cursor start time in spi

This commit is contained in:
obdev 2024-10-29 19:44:12 +00:00 committed by ob-robot
parent 3393dedbe7
commit bd51e26973
2 changed files with 15 additions and 9 deletions

View File

@ -3388,7 +3388,7 @@ int ObSPIService::streaming_cursor_open(ObPLExecCtx *ctx,
ObPLSqlAuditRecord audit_record(sql::PLSql);
ObQueryRetryCtrl retry_ctrl;
ObSPIExecEnvGuard env_guard(session_info, *spi_result);
ObSPIExecEnvGuard env_guard(session_info, *spi_result, cursor.is_ps_cursor());
do {
{
@ -3501,7 +3501,7 @@ int ObSPIService::unstreaming_cursor_open(ObPLExecCtx *ctx,
ObPLSqlAuditRecord audit_record(sql::PLSql);
ObQueryRetryCtrl retry_ctrl;
ObSPIExecEnvGuard env_guard(session_info, spi_result);
ObSPIExecEnvGuard env_guard(session_info, spi_result, cursor.is_ps_cursor());
do {
ret = OB_SUCCESS;
@ -9088,18 +9088,22 @@ void ObSPIRetryCtrlGuard::test()
}
}
ObSPIExecEnvGuard::ObSPIExecEnvGuard(ObSQLSessionInfo &session_info, ObSPIResultSet &spi_result)
: session_info_(session_info), spi_result_(spi_result)
ObSPIExecEnvGuard::ObSPIExecEnvGuard(
ObSQLSessionInfo &session_info, ObSPIResultSet &spi_result, bool is_ps_cursor)
: session_info_(session_info), spi_result_(spi_result), is_ps_cursor_(is_ps_cursor)
{
query_start_time_bk_ = session_info.get_query_start_time();
session_info.set_query_start_time(ObTimeUtility::current_time());
if (!is_ps_cursor_) {
query_start_time_bk_ = session_info.get_query_start_time();
session_info.set_query_start_time(ObTimeUtility::current_time());
}
}
ObSPIExecEnvGuard::~ObSPIExecEnvGuard()
{
session_info_.get_retry_info_for_update().clear();
session_info_.set_query_start_time(query_start_time_bk_);
if (!is_ps_cursor_) {
session_info_.set_query_start_time(query_start_time_bk_);
}
}
}

View File

@ -84,13 +84,15 @@ private:
class ObSPIExecEnvGuard
{
public:
ObSPIExecEnvGuard(ObSQLSessionInfo &session_info, ObSPIResultSet &spi_result);
ObSPIExecEnvGuard(
ObSQLSessionInfo &session_info, ObSPIResultSet &spi_result, bool is_ps_cursor = false);
~ObSPIExecEnvGuard();
private:
ObSQLSessionInfo &session_info_;
ObSPIResultSet &spi_result_;
int64_t query_start_time_bk_;
pl::ObPLSqlCodeInfo *sqlcode_info_bk_;
bool is_ps_cursor_;
};
struct ObSPICursor