Re: Import Statistics in postgres_fdw before resorting to sampling.

Etsuro Fujita <etsuro.fujita@gmail.com>

From: Etsuro Fujita <etsuro.fujita@gmail.com>
To: Corey Huinker <corey.huinker@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Michael Paquier <michael@paquier.xyz>, pgsql-hackers@postgresql.org, jkatz@postgresql.org, nathandbossart@gmail.com
Date: 2026-05-14T11:35:30Z
Lists: pgsql-hackers
On Wed, May 13, 2026 at 8:40 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
> On Tue, May 12, 2026 at 8:36 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
> > On Fri, May 1, 2026 at 3:04 AM Corey Huinker <corey.huinker@gmail.com> wrote:
> > > The second gets rid of the string buffers entirely, and instead frees the nested object.
> > >
> > > I have no preference between the two, though I suspect that the nested-free solution will be preferred by the community.
> >
> > ISTM that the second solution is the right direction to go in.
> >
> > +static void
> > +free_remattrmap(RemoteAttributeMapping *map, int len)
> > +{
> > +   if (!map)
> > +       return;
> > +
> > +   for (int i = 0; i < len; i++)
> > +   {
> > +       if (map[i].local_attname)
> > +           pfree(map[i].local_attname);
> > +       if (map[i].remote_attname)
> > +           pfree(map[i].remote_attname);
> > +   }
> >
> > The if tests for local_attname/remote_attname should be assertions?
>
> I mean that by the definition of build_remattrmap(), the
> local_attname/remote_attname cannot be NULL if the given map isn't
> NULL, so the if tests are just a waste of cycles.  So I modified the
> patch as such.  Updated patch attached.  I also removed an extra
> change made to RemoteAttributeMapping, which seemed irrelevant to this
> issue to me.

I'll push the updated patch if no objections from you (or anyone else).

Best regards,
Etsuro Fujita