public inbox for [email protected]  
help / color / mirror / Atom feed
From: Amit Langote <[email protected]>
To: Etsuro Fujita <[email protected]>
Cc: Richard Guo <[email protected]>
Cc: Matheus Alcantara <[email protected]>
Cc: Ayush Tiwari <[email protected]>
Cc: Rafia Sabih <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: Amit Langote <[email protected]>
Subject: Re: BUG #19484: Segmentation fault triggered by FDW
Date: Thu, 25 Jun 2026 21:21:15 +0900
Message-ID: <CA+HiwqGOcb+ZHon5Tnm7syFW8+t-wa5rBzrSoTgh4LeVt4MrZA@mail.gmail.com> (raw)
In-Reply-To: <CA+HiwqE_oxre_URagYTSx1fpG_+ZVaY8VkxQtEyceHxYZGLcjQ@mail.gmail.com>
References: <[email protected]>
	<CAJTYsWXY9C3B-7NZw72OKen2L2rZt=c-t6=kjTJzgj=ZaNPe8g@mail.gmail.com>
	<[email protected]>
	<CA+FpmFc10Dtnr9dr=xqK2cNYQ4-1VuOyvOT7-eqXPmiQJoyPew@mail.gmail.com>
	<[email protected]>
	<CAJTYsWWUfgCZau2fvrZVruXmC+dyOx45L=TyaGzXdywsywDyHQ@mail.gmail.com>
	<[email protected]>
	<CA+HiwqHVMY1a5E+6Ei369+RqQ8qKSSgon_C=3yBk-TPJDwZ2nQ@mail.gmail.com>
	<CA+HiwqHjUO0uXFZ2dECJiNime6B1FDL5+mJ=XN+1XgzkY=m9DA@mail.gmail.com>
	<CAPmGK16GNiwcnAxM3XU=ZTOP_8oiv7_FOUwo5hZp8b+qfv2L7g@mail.gmail.com>
	<CA+HiwqEVwEPSE4yMvuwVT5bb+ziMHLfqd_HuiQPAFAixNHbhrQ@mail.gmail.com>
	<CA+HiwqHO0Bbi6cyk4F+UGvZEV3NEo7o0YT3-Js7K7hvasoWBVw@mail.gmail.com>
	<CAPmGK16fALJqbyR1Oir7-TsN8k_yAR-JcOg5nWOUmDmivTmDtA@mail.gmail.com>
	<CAPmGK14Qh_Wb4GNPNkZ1o9=vTcMKShzPNSWa=wNf9vJpg8qT+Q@mail.gmail.com>
	<CA+HiwqHRDsYDqJ-7f5P_QpJo=U1BYzMnfDnNOr6Vx3Rw36O0iQ@mail.gmail.com>
	<CAPmGK15nR_pePb9QAMViq+AGuWeJSqPnLTJVLsr96aU2TFmcmw@mail.gmail.com>
	<CA+HiwqFT0VDOCAdN1bcVZTOF0oBbR4kzLF-OwEcgPOf01me-Kw@mail.gmail.com>
	<CAPmGK15nx4a_QkTcbD2BwsDuDPtbS25Pzmq_sc-xM4EitoHaxw@mail.gmail.com>
	<CA+HiwqHTsZmceNHxVfmD0VVN-F1eMSuVQYVDWfsz3OSe+qoO7A@mail.gmail.com>
	<CA+HiwqEhe7-v5Q0-oOoW3RaO4voYcGK-JfinbYEWXwutDGSOtQ@mail.gmail.com>
	<CAMbWs4-hBR6H3AEv1LkcnRt04Q4zgVVUeOqmA6-W=DSP65s3Xw@mail.gmail.com>
	<CA+HiwqEbqW_957S9UAEoZJ5aYyBF_Bp+ON+6thQNCySxSwv+Fg@mail.gmail.com>
	<CAPmGK14CFGgCSCor1DHe6GVVQpjj+zDq755K5_vgc32U2+OGYQ@mail.gmail.com>
	<CA+HiwqFd61sXgUWijKg8DfRQDtwYEGSdxuEPDb8rq22rxzxN_g@mail.gmail.com>
	<CAPmGK15do2D1YJFR2VST6+8BnADyZbiiY1hk+HhMGgFyBkE70Q@mail.gmail.com>
	<CA+HiwqEr9AQoG=ySqC9nVJ7n9F52xPYGEb-r2xCW5ut0QhzauA@mail.gmail.com>
	<CAPmGK17342yvbaECJV22-zBYZcG7vS0kEm74iDOMmC2J96Eq=w@mail.gmail.com>
	<CA+HiwqE_oxre_URagYTSx1fpG_+ZVaY8VkxQtEyceHxYZGLcjQ@mail.gmail.com>

On Thu, Jun 25, 2026 at 8:47 PM Amit Langote <[email protected]> wrote:
> On Thu, Jun 25, 2026 at 3:15 PM Etsuro Fujita <[email protected]> wrote:
> > On Thu, Jun 25, 2026 at 8:24 AM Amit Langote <[email protected]> wrote:
> > > On Thu, Jun 25, 2026 at 2:02 AM Etsuro Fujita <[email protected]> wrote:
> > > > This might be nitpicking, but:
> > > >
> > > > +           if (list_length(node->resultRelations) == mtstate->mt_nrels)
> > > > +               fdw_private = (List *) list_nth(node->fdwPrivLists, j);
> > > > +           else
> > > > +           {
> > > > +               Index       rti = resultRelInfo->ri_RangeTableIndex;
> > > > +               ListCell   *lc1;
> > > > +               ListCell   *lc2;
> > > > +
> > > > +               fdw_private = NIL;
> > > > +               forboth(lc1, node->resultRelations, lc2, node->fdwPrivLists)
> > > > +               {
> > > > +                   if (lfirst_int(lc1) == (int) rti)
> > > > +                   {
> > > > +                       fdw_private = (List *) lfirst(lc2);
> > > > +                       break;
> > > > +                   }
> > > > +               }
> > > > +           }
> > > >
> > > > I'd put the if-test outside of the outer loop to save cycles.
> > >
> > > Right, it's loop-invariant. v3 attached computes a boolean
> > > (nopruning), like labeltargets, once before the loop and uses it
> > > inside.
> > >
> > > > Other than that v2 looks good to me.
> > > >
> > > > (The forboth loop actually causes an n-squared calculation, but it's
> > > > done only when pruning occurs, in which case the number of remaining
> > > > result relations would be reduced, so that wouldn't be a problem.)
> > >
> > > Right, though strictly the inner forboth scans node->resultRelations,
> > > which pruning leaves at its original length, so it's the original
> > > relation count that bounds the scan rather than the reduced one.
> > > Either way it's EXPLAIN-only with small counts, so it's not a concern.
> >
> > That's right.
> >
> > The v3 patch looks good to me.  Thanks for updating the patch!
>
> Pushed, thanks for checking.

And crake turns green:

https://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=crake&br=REL_18_STABLE

-- 
Thanks, Amit Langote






view thread (32+ messages)

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], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: BUG #19484: Segmentation fault triggered by FDW
  In-Reply-To: <CA+HiwqGOcb+ZHon5Tnm7syFW8+t-wa5rBzrSoTgh4LeVt4MrZA@mail.gmail.com>

* 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