From 5810978e4e186c17f09bb38eccbaeb67ad6b59ea Mon Sep 17 00:00:00 2001 From: Rahim Kanji Date: Sun, 8 Mar 2026 14:46:16 +0500 Subject: [PATCH] Unify ABORT and ROLLBACK command parsing Remove separate early-return handling for ABORT that was bypassing parse_rollback(). Treat ABORT as a synonym of ROLLBACK. --- lib/PgSQL_ExplicitTxnStateMgr.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/PgSQL_ExplicitTxnStateMgr.cpp b/lib/PgSQL_ExplicitTxnStateMgr.cpp index ec4a167de..a8de9862a 100644 --- a/lib/PgSQL_ExplicitTxnStateMgr.cpp +++ b/lib/PgSQL_ExplicitTxnStateMgr.cpp @@ -391,14 +391,12 @@ TxnCmd PgSQL_TxnCmdParser::parse(std::string_view input) noexcept { cmd_type = TxnCmd::SAVEPOINT; } else if (iequals(first_word, "release")) { cmd_type = TxnCmd::RELEASE; - } else if (iequals(first_word, "rollback")) { + } else if (iequals(first_word, "rollback") || iequals(first_word, "abort")) { + // ABORT is a synonym for ROLLBACK (including ABORT AND CHAIN = ROLLBACK AND CHAIN) cmd_type = TxnCmd::ROLLBACK; } else if (iequals(first_word, "commit") || iequals(first_word, "end")) { cmd.type = TxnCmd::COMMIT; return cmd; - } else if (iequals(first_word, "abort")) { - cmd.type = TxnCmd::ROLLBACK; - return cmd; } // If not a transaction command, return early