| From: | Masahiko Sawada <sawada(dot)mshk(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 03:15:20 |
| Message-ID: | CAD21AoCN80DgWpAgZvw2sV1QnYq6rH_8Y=qwYUawfbhj3vGPRA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Apr 23, 2024 at 11: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 that this has problem has come up before and seems likely to
> > come up again, I'm curious what other broad solutions there might be
> > to resolve it?
>
> Reject as not a bug. Discourage people from thinking that physical
> replication will work across architectures.
While cross-arch physical replication is not supported, I think having
architecture dependent differences is not good and It's legitimate to
fix it. FYI the 'char' data type comparison is done as though char is
unsigned. I've attached a small patch to fix it. What do you think?
Regards,
--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com
| Attachment | Content-Type | Size |
|---|---|---|
| fix_signedness_issue_in_pg_trgm.patch | application/octet-stream | 605 bytes |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | jian he | 2024-04-30 03:27:07 | Re: CREATE TABLE/ProcessUtility hook behavior change |
| Previous Message | Alexander Lakhin | 2024-04-30 03:00:00 | Re: Add SPLIT PARTITION/MERGE PARTITIONS commands |