Re: BUG #17434: CREATE/DROP DATABASE can be executed in the same transaction with other commands
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: "David G. Johnston" <david.g.johnston@gmail.com>
Cc: Bruce Momjian <bruce@momjian.us>, Yugo Nagata <nagata@sraoss.co.jp>,
PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2022-07-18T20:20:24Z
Lists: pgsql-bugs, pgsql-hackers
"David G. Johnston" <david.g.johnston@gmail.com> writes: > On Fri, Jul 15, 2022 at 2:06 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Here's a draft patch to fix this. We basically just need to force >> finish_xact_command() in the same way as we do for transaction control >> statements. I considered using the same technology as the code uses >> for transaction control --- that is, statically check for the types of >> statements that are trouble --- but after reviewing the set of callers >> of PreventInTransactionBlock() I gave that up as unmaintainable. > This seems like too narrow a fix though. I read this, and I have absolutely no idea what you're talking about or what you concretely want to do differently. If it's just a documentation question, I agree that I didn't address docs yet. Probably we do need to put something in the protocol chapter pointing out that some commands will commit immediately. I'm not sure I buy your argument that there's a fundamental difference between simple and extended query protocol in this area. In simple protocol you can wrap an "implicit transaction" around several commands by sending them in one query message. What we've got here is that you can do the same thing in extended protocol by omitting Syncs. Extended protocol's skip-till-Sync-after-error behavior is likewise very much like the fact that simple protocol abandons the rest of the query string after an error. regards, tom lane
Commits
-
Rethink handling of [Prevent|Is]InTransactionBlock in pipeline mode.
- f48aa5df4e03 11.19 landed
- ae47f8a9664a 14.7 landed
- 942cc240f959 13.10 landed
- 1cca4a75ffb8 12.14 landed
- 18431ee6f511 15.2 landed
- 20432f873140 16.0 landed
-
Doc: add comments about PreventInTransactionBlock/IsInTransactionBlock.
- fec80da849f3 11.19 landed
- e70cd16f2223 15.2 landed
- e613ace1f0d5 16.0 landed
- 8befa05d7889 14.7 landed
- 1949135e79e8 13.10 landed
- 17e9ecac0118 12.14 landed
-
Force immediate commit after CREATE DATABASE etc in extended protocol.
- f92944137cde 16.0 landed
- a0c632c1dea7 15.0 landed
- 9e3e1ac458ab 11.17 landed
- 968b89257b11 12.12 landed
- 964f42aa297b 10.22 landed
- 6c193c2ace32 13.8 landed
- 3e1297a63f76 14.5 landed