Re: New docs chapter on Transaction Management and related changes

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
Cc: Robert Treat <rob(at)xzilla(dot)net>, Simon Riggs <simon(dot)riggs(at)enterprisedb(dot)com>, Bruce Momjian <bruce(at)momjian(dot)us>, Erik Rijkers <er(at)xs4all(dot)nl>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: New docs chapter on Transaction Management and related changes
Date: 2022-11-10 11:17:57
Message-ID: 20221110111757.nsfkjm5d64skmpiu@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2022-Nov-10, Laurenz Albe wrote:

> On Wed, 2022-11-09 at 09:16 -0500, Robert Treat wrote:

> > > > -      If <literal>AND CHAIN</literal> is specified, a new transaction is
> > > > +      If <literal>AND CHAIN</literal> is specified, a new unaborted transaction is
> > > >        immediately started with the same transaction characteristics (see <xref
> > > >        linkend="sql-set-transaction"/>) as the just finished one.  Otherwise,
> > > >        no new transaction is started.
> > >
> > > I don't think that is an improvement.  "Unaborted" is an un-word.  A new transaction
> > > is always "unaborted", isn't it?
> >
> > I thought about this as well when reviewing it, but I do think
> > something is needed for the case where you have a transaction which
> > has suffered an error and then you issue "rollback and chain"; if you
> > just say "a new transaction is immediately started with the same
> > transaction characteristics" it might imply to some the new
> > transaction has some kind of carry over of the previous broken
> > transaction... the use of the word unaborted makes it clear that the
> > new transaction is 100% functional.
>
> A new transaction is never aborted in my understanding. Being aborted
> is not a characteristic of a transaction, but a state.

I agree, but maybe it's good to make the point explicit, because it
doesn't seem obvious. Perhaps something like

"If X is specified, a new transaction (never in aborted state) is
immediately started with the same transaction characteristics (see X) as
the just finished one. Otherwise ..."

Getting the wording of that parenthical comment right is tricky, though.
What I propose above is not great, but I don't know how to make it
better. Other ideas that seem slightly worse but may inspire someone:

... a new transaction (which is never in aborted state) is ...
... a new transaction (not in aborted state) is ...
... a new transaction (never aborted, even if the previous is) is ...
... a new (not-aborted) transaction is ...
... a new (never aborted) transaction is ...
... a new (never aborted, even if the previous is) transaction is ...
... a new (never aborted, regardless of the status of the previous one) transaction is ...

Maybe there's a way to reword the entire phrase that leads to a better
formulation of the idea.

--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2022-11-10 11:31:25 Re: New docs chapter on Transaction Management and related changes
Previous Message Nikolay Shaplov 2022-11-10 10:44:54 Re: TAP output format in pg_regress