Re: pg_trgm comparison bug on cross-architecture replication due to different char implementation

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "Guo, Adam" <adamguo(at)amazon(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: pg_trgm comparison bug on cross-architecture replication due to different char implementation
Date: 2024-04-30 16:43:12
Message-ID: CAPpHfdsaqjye-gg-PN5KAyrWey7By-esajK0AWe6MjtY=o23XA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Apr 23, 2024 at 5:57 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "Guo, Adam" <adamguo(at)amazon(dot)com> writes:
> > I would like to report an issue with the pg_trgm extension on
> > cross-architecture replication scenarios. When an x86_64 standby
> > server is replicating from an aarch64 primary server or vice versa,
> > the gist_trgm_ops opclass returns different results on the primary
> > and standby.
>
> I do not think that is a supported scenario. Hash functions and
> suchlike are not guaranteed to produce the same results on different
> CPU architectures. As a quick example, I get
>
> regression=# select hashfloat8(34);
> hashfloat8
> ------------
> 21570837
> (1 row)
>
> on x86_64 but
>
> postgres=# select hashfloat8(34);
> hashfloat8
> ------------
> -602898821
> (1 row)
>
> on ppc32 thanks to the endianness difference.

Given this, should we try to do better with binary compatibility
checks using ControlFileData? AFAICS they are supposed to check if
the database cluster is binary compatible with the running
architecture. But it obviously allows incompatibilities.

------
Regards,
Alexander Korotkov

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2024-04-30 16:54:51 Re: pg_trgm comparison bug on cross-architecture replication due to different char implementation
Previous Message Paul Jungwirth 2024-04-30 16:39:24 Re: SQL:2011 application time