Hi all, I found that ecpg has not been supporting COMMIT PREPARED and ROLLBACK PREPARED since version 9.0.2. For example, if the test code does, EXEC SQL BEGIN; EXEC SQL INSERT INTO t1 VALUES(1); EXEC SQL PREPARE TRANSACTION 'gxid'; EXEC SQL COMMIT PREPARED 'gxid'; I got error "COMMIT PREPARED cannot run inside a transaction block".
This cause is that the "begin transaction" is issued automatically before executing COMMIT PREPARED if we're not in auto commit. The Commit 816b008eaf1a1ff1069f3bafff363a9a8bf04a21 fixed bug of incorrect status calculation but at the same time it became the cause of this behavior. Is this a bug? Attached 001 patch fixes this issue and add regression test for two phase commit in ecpg. Also, in spite of ecpg identifies these two commands as transaction command similar to other transaction commands like commit and rollback the documentation doesn't mentioned about these at all. Attached 002 patch add description about these to documentation. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
002_ecpg_commit_rollback_prepared_doc.patch
Description: Binary data
001_ecpg_commit_rollback_prepared.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers