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: Israel Barth Rubio <barthisrael@gmail.com>
Cc: Yugo NAGATA <nagata@sraoss.co.jp>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, pgsql-hackers@postgresql.org, "David G. Johnston" <david.g.johnston@gmail.com>, Bruce Momjian <bruce@momjian.us>
Date: 2022-11-25T17:06:15Z
Lists: pgsql-bugs, pgsql-hackers
Israel Barth Rubio <barthisrael@gmail.com> writes:
> It would be great if we can back-patch this to all supported versions,
> as the issue itself is currently affecting them all.

In my mind, this is waiting for Peter to opine on whether it satisfies
his concern.

I'm also looking for input on whether to reject if

    if ((MyXactFlags & XACT_FLAGS_PIPELINING) &&
        GetTopTransactionIdIfAny() != InvalidTransactionId)

rather than just the bare

    if (MyXactFlags & XACT_FLAGS_PIPELINING)

tests in the patch-as-posted.

			regards, tom lane



Commits

  1. Rethink handling of [Prevent|Is]InTransactionBlock in pipeline mode.

  2. Doc: add comments about PreventInTransactionBlock/IsInTransactionBlock.

  3. Force immediate commit after CREATE DATABASE etc in extended protocol.