public inbox for [email protected]
help / color / mirror / Atom feedFrom: Michael Paquier <[email protected]>
To: Jelte Fennema-Nio <[email protected]>
Cc: Anthonin Bonnefoy <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Cc: Tom Lane <[email protected]>
Subject: Re: Consider pipeline implicit transaction as a transaction block
Date: Sat, 2 Nov 2024 12:11:10 +0900
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <CAO6_XqrWO8uNBQrSu5r6jh+vTGi5Oiyk4y8yXDORdE2jbzw8xw@mail.gmail.com>
<CAGECzQQG658yCZZ6S4sU=bu3H7ykf4ZpYzRCBJt0U3cVi3818A@mail.gmail.com>
<[email protected]>
On Thu, Oct 31, 2024 at 03:32:39PM +0900, Michael Paquier wrote:
> @Tom added in CC: Is there a specific reason why CheckTransactionBlock()
> did not include a check based on XACT_FLAGS_PIPELINING when it got
> introduced in 20432f873140, while IsInTransactionBlock() considers it?
This also makes LOCK able to work flawlessly within pipelines as far
as I can see, as an error would be reported on HEAD. That's nice.
The behavior of the first command is interesting, still this saves
from the checks after any follow-up commands, and this is intended
from what I can see in postgres.c, because the xact flag is only set
once the first command completes.
Now, here is a fancy case: SAVEPOINT and its two brothers. An error
would be reported on HEAD if attempting a SAVEPOINT, complaining that
we are not in a transaction block. The patch causes a different, more
confusing, failure:
FATAL: DefineSavepoint: unexpected state STARTED
This is a bit user-unfriendly. I am not sure to see the point of
supporting savepoints in this context, so perhaps we should just issue
a cleaner error when we are under a XACT_FLAGS_PIPELINING? Reporting
that we are not in a transaction block, while, well, we are in an
implicit transaction block because of the use of pipelines is
confusing. The new error is actually worse.
--
Michael
Attachments:
[application/pgp-signature] signature.asc (833B, ../[email protected]/2-signature.asc)
download
view thread (4+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: Consider pipeline implicit transaction as a transaction block
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox