Re: Issues with ON CONFLICT UPDATE and REINDEX CONCURRENTLY

From: Álvaro Herrera <alvherre(at)kurilemu(dot)de>
To: Mihail Nikalayeu <mihailnikalayeu(at)gmail(dot)com>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>, Noah Misch <noah(at)leadboat(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Issues with ON CONFLICT UPDATE and REINDEX CONCURRENTLY
Date: 2025-11-22 14:16:44
Message-ID: 202511221409.erusvxemyrlu@alvherre.pgsql
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

On 2025-Nov-22, Mihail Nikalayeu wrote:

> I attached an updated version, changes are:
> 1) your fix for comment
> 2) some updates for 0001 test stability (related to [0]).

Thank you. I've been looking at this part of 0001 too:

> @@ -942,6 +943,8 @@ retry:
> econtext->ecxt_scantuple = save_scantuple;
>
> ExecDropSingleTupleTableSlot(existing_slot);
> + if (!conflict)
> + INJECTION_POINT("check-exclusion-or-unique-constraint-no-conflict", NULL);

and wondering whether it would make sense to pass the 'conflict' as an
argument to the injection point instead of being conditional on it.
That is, do it like

ExecDropSingleTupleTableSlot(existing_slot);
+ INJECTION_POINT("check-exclusion-or-unique-constraint-no-conflict", &conflict);

However, I don't see that the SQL injection point interface has the
ability to receive arguments, so I'm guessing that this is not workable?
Maybe something to consider for the future.

BTW I've split the patches to commit differently: instead of 0001 with a
bunch of failing tests and then 0002 with fixes for some of them, I
intend to push a modified 0002 with the tests in 0001 that it fixes,
then your 0003 with the tests it fixes, and so on. (I have already cut
it this way, so you don't need to resubmit anything at this point. But
I'll verify what changes you have in the v13-0001 compared to the one
before, to be certain I'm not missing any later changes there.)

Thanks!

--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"How strange it is to find the words "Perl" and "saner" in such close
proximity, with no apparent sense of irony. I doubt that Larry himself
could have managed it." (ncm, http://lwn.net/Articles/174769/)

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2025-11-22 15:25:48 Re: pgsql: Teach DSM registry to ERROR if attaching to an uninitialized ent
Previous Message Fujii Masao 2025-11-22 14:14:27 Re: Allow GUC settings in CREATE SUBSCRIPTION CONNECTION to take effect