Re: BUG: PostgreSQL 19devel throws internal opfamily error for FK with reordered referenced columns
Fredrik Widlert <fredrik.widlert@digpro.se>
From: Fredrik Widlert <fredrik.widlert@digpro.se>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Junwang Zhao <zhjwpku@gmail.com>,
Matheus Alcantara <matheusssilv97@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2026-04-10T07:29:44Z
Lists: pgsql-bugs
Thanks for the very quick fix - it's a great feeling to report a problem
and get it fixed this quickly.
I can confirm that the fix solves not only the small reproducer but also
the original problems I got when trying to install our (large) system
on PostgreSQL 19 devel for testing.
We actually ran into the same problem in two ways:
* the reordered FK with datatype mismatch (my reproducer)
* other reordered FKs with the same datatypes, where we instead got
regular FK violations
In case you want a reproducer for the second case as well, I've included it
below,
but perhaps it's not relevant since the patch already fixed it.
----
drop table if exists parent, child;
create table parent (
c1 integer,
c2 integer,
primary key (c1, c2)
);
create table child (
c1 integer,
c2 integer,
constraint child_fk foreign key (c2, c1) references parent (c2, c1)
);
insert into parent (c1, c2) values (1, 2);
insert into child (c1, c2) values (1, 2);
/Fredrik Widlert
On Fri, Apr 10, 2026 at 8:32 AM Amit Langote <amitlangote09@gmail.com>
wrote:
> On Fri, Apr 10, 2026 at 1:42 PM Amit Langote <amitlangote09@gmail.com>
> wrote:
> > Thanks Junwang for checking. I've just pushed this: 980c1a85d819.
>
> Pushed a follow up commit to add an Assert making the single-column
> invariant explicit in ri_FastPathFlushArray(), per Junwang's
> suggestion off-list.
>
> --
> Thanks, Amit Langote
>
Commits
-
Add test case for same-type reordered FK columns
- 009ea1b08d7b 19 (unreleased) landed
-
Assert index_attnos[0] == 1 in ri_FastPathFlushArray()
- 155c03ee9d44 19 (unreleased) landed
-
Fix FK fast-path scan key ordering for mismatched column order
- 980c1a85d819 19 (unreleased) landed
-
Add fast path for foreign key constraint checks
- 2da86c1ef9b5 19 (unreleased) cited