On 2021/02/16 6:47, Arthur Nascimento wrote:
> On Mon, 15 Feb 2021 at 17:54, PG Bug reporting form
> <noreply@postgresql.org> wrote:
>> On a trivial transaction, I might do:
>>
>> =# begin;
>> *=# commit and chain;
>> *=# -- In this point I'm inside a second transaction
>
> I forgot to mention that this case also works as expected:
>
> =# begin;
> *=# savepoint foo;
> *=# release foo;
> *=# commit and chain;
> *=# -- In this point I'm also inside a second transaction
>
> So it's only the unmatched savepoint/release transactions that are an issue.
>
> I also attached the change I did to psql locally.
LGTM.
> But since it didn't
> solve the issue, it's mostly for curiosity's sake.
In the server side, ISTM that CommitTransactionCommand() needs to handle
the COMMIT AND CHAIN in TBLOCK_SUBCOMMIT case, but it forgot to do that.
Patch attached. I'm not sure if this is a bug or an intentional behavior.
Probably we need to look at the past discussion about AND CHAIN feature.
Regards,
--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION