修复pbe模式下end没有转发导致sysbench无法运行的bug
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user