修复pbe模式下end没有转发导致sysbench无法运行的bug

This commit is contained in:
arcoalien@qq.com
2023-07-13 11:10:42 +08:00
parent b7eacfd741
commit 82406865c2
3 changed files with 5 additions and 5 deletions

View File

@ -2716,7 +2716,7 @@ void standard_ProcessUtility(processutility_context* processutility_cxt,
if (SS_STANDBY_MODE_WITH_REMOTE_EXECUTE) {
ClearTxnInfoForSSLibpqsw();
if (libpqsw_get_transaction()) {
if (libpqsw_get_transaction() && !libpqsw_is_end()) {
libpqsw_set_transaction(false);
}
}
@ -2829,7 +2829,7 @@ void standard_ProcessUtility(processutility_context* processutility_cxt,
if (SS_STANDBY_MODE_WITH_REMOTE_EXECUTE) {
ClearTxnInfoForSSLibpqsw();
if (libpqsw_get_transaction()) {
if (libpqsw_get_transaction() && !libpqsw_is_end()) {
libpqsw_set_transaction(false);
}
}

View File

@ -4022,7 +4022,7 @@ static void AbortTransaction(bool PerfectRollback, bool STP_rollback)
}
#endif
if (SS_STANDBY_MODE_WITH_REMOTE_EXECUTE) {
if (SS_STANDBY_MODE_WITH_REMOTE_EXECUTE && !libpqsw_is_end()) {
libpqsw_disconnect();
}

View File

@ -412,7 +412,7 @@ static bool libpqsw_before_redirect(const char* commandTag, List* query_list, co
libpqsw_check_savepoint(query_list, &(redirect_manager->state.have_savepoint));
libpqsw_set_transaction(true);
need_redirect = true;
} else if (libpqsw_redirect() || libpqsw_end_command(commandTag)) {
} else if (libpqsw_redirect()) {
need_redirect = true;
} else {
if (strcmp(commandTag, "SET") == 0) {
@ -931,7 +931,7 @@ bool libpqsw_only_localrun()
*/
bool libpqsw_process_message(int qtype, StringInfo msg)
{
if (IsAbortedTransactionBlockState()) {
if (IsAbortedTransactionBlockState() || u_sess->proc_cxt.clientIsCMAgent) {
return false;
}