Re: postgres_fdw: possible overlooked NAMEDATALEN comparison in stats import - Mailing list pgsql-hackers

From Etsuro Fujita
Subject Re: postgres_fdw: possible overlooked NAMEDATALEN comparison in stats import
Date
Msg-id CAPmGK15rGwoKgJ_nNtmnZvCHcomGT37dhLFOCve_f+4G2XsZGg@mail.gmail.com
Whole thread
In response to postgres_fdw: possible overlooked NAMEDATALEN comparison in stats import  (Chao Li <li.evan.chao@gmail.com>)
Responses Re: postgres_fdw: possible overlooked NAMEDATALEN comparison in stats import
List pgsql-hackers
Hi Chao,

On Thu, Jun 11, 2026 at 5:51 PM Chao Li <li.evan.chao@gmail.com> wrote:
> I’m testing "[28972b6fc] Add support for importing statistics from remote servers". Functionally, so far so good. I
justfound a piece of suspicious code that might be an oversight in the follow-up commit aa1f93a3387: 
> ```
> /*
>  * Compare two RemoteAttributeMappings for sorting.
>  */
> static int
> remattrmap_cmp(const void *v1, const void *v2)
> {
>         const RemoteAttributeMapping *r1 = v1;
>         const RemoteAttributeMapping *r2 = v2;
>
>         return strncmp(r1->remote_attname, r2->remote_attname, NAMEDATALEN);
> }
> ```
>
> This function compares remote attribute names only up to NAMEDATALEN. But aa1f93a3387 changed remote_attname from a
NAMEDATALEN-bytearray to a char pointer, and its commit message explicitly says "the remote column name in particular
couldbe longer than NAMEDATALEN - 1". In that case, remattrmap_cmp() could treat two distinct remote column names as
equalfor sorting, while match_attrmap() later compares the full strings. 
>
> Also, aa1f93a3387’s commit message mentions match_attrmap(), and that function uses strcmp(). So I guess
remattrmap_cmp()should also use strcmp(). 
>
> I don’t have a repro that triggers a bad result. I just want to report and confirm whether that code should be
changed.I made a local change as the attached diff, and no test is broken with the change. 

You are right; that's an oversight in the follow-up commit.  The patch
looks good to me, so I'll push it after confirming that there are no
similar mistakes.

Thanks for the report and patch!

Best regards,
Etsuro Fujita



pgsql-hackers by date:

Previous
From: Amit Langote
Date:
Subject: Re: PG19 FK fast path: OOB write and missed FK checks during batched
Next
From: Amit Kapila
Date:
Subject: Re: Fix race in ReplicationSlotRelease for ephemeral slots