On Thu, Sep 10, 2026 at 12:57 PM Amit Kapila <[email protected]> wrote:
> On Wed, Sep 9, 2026 at 9:12 PM Melanie Plageman
> <[email protected]> wrote:
> >
> > On Wed, Sep 9, 2026 at 8:26 AM Amit Langote <[email protected]> wrote:
> > >
> > > That still leaves your concern about whether the per-row path is
> > > sufficiently solid for v19. The snapshot fixes and Amit's recent
> > > collation report show that there are differences from SPI that we (I)
> > > missed. The proposed collation fix falls back to SPI when the
> > > referenced index and column collations differ. I still propose
> > > retaining the per-row path, but agree that its readiness needs to be
> > > assessed separately from the decision to remove batching.
> >
> > I think a good start would be to revert the batching ASAP so that we
> > can consider the state after independently.
>
> BTW, it is not clear to me from this response whether it should be
> reverted for both 19 and 20 or just 19? I feel the reason to keep in
> 20 could be that it needs some (known) adjustments/bug-fixes and more
> testing but if there are still larger design issues, it will be better
> to revert even from 20. I was planning to evaluate that part but that
> needs more time, so it is better to first revert batching from 19, fix
> some reported issues for per-row optimization and evaluate whether it
> has any serious issues and make a decision based on that. Then
> independently, we can evaluate the batching state for 20 and take a
> call.

I have now reverted batching in REL_19_STABLE after pushing the
snapshot fix for the per-row path to master and REL_19_STABLE. and .
Batching remains in master for now.

With that, I've marked the following open items as fixed:

#1 RI fast-path batching fails during nested SET CONSTRAINTS
#2 RI fast-path batching wrongly used by ALTER TABLE inside a trigger
#3 Stale snapshot in RI fast-path leads to spurious failure

The fixes for #1 and #2 still need to be applied to master. Those
patches are posted at [1].

Later today, I will push the attached patches addressing Amit's review
in this thread to both branches. 0001 clarifies the tuple-lock result
handling comments. 0002 fixes the collation mismatch by falling back
to SPI.  There are separate versions of 0002 for REL_19_STABLE, with
batching removed, and master, where both the per-row and batched paths
need the fallback.

--
Thanks, Amit Langote

[1] 
https://www.postgresql.org/message-id/CA%2BHiwqFxPkyD%2BtaMq7ENDqEfcY6xC_b1OAC-2d1wnfVyiXDY%3DQ%40mail.gmail.com

Attachment: master-v6-0002-Fall-back-to-SPI-for-RI-checks-with-mismatched-in.patch
Description: Binary data

Attachment: v6-0001-Clarify-RI-tuple-lock-result-handling-comments.patch
Description: Binary data

Attachment: REL_19_STABLE-v6-0002-Fall-back-to-SPI-for-RI-checks-with-mismatched-in.patch
Description: Binary data

Reply via email to