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: pgsql-bugs@lists.postgresql.org
Date: 2026-04-09T15:27:19Z
Lists: pgsql-bugs
Hello,
I believe I may have found a regression in PostgreSQL 19devel, downloaded
on 2026-04-09
from https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.gz.
postgres=# select version();
version
-----------------------------------------------------------------------------------------------------
PostgreSQL 19devel on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
13.2.0-23ubuntu4) 13.2.0, 64-bit
With the reproducer below, PostgreSQL 18 reports a normal foreign-key
violation
at INSERT time, but PostgreSQL 19devel instead throws an internal-looking
error:
ERROR: operator 98 is not a member of opfamily 1976
-- reproducer:
drop table if exists parent, child;
create table parent (
app_id varchar(256) not null,
report_id smallint not null,
otype integer not null,
subtype integer not null,
ctype integer not null,
column_name varchar(30) not null,
primary key (app_id, report_id, otype, subtype, ctype, column_name)
);
create table child (
app_id varchar(256) not null,
report_id smallint not null,
otype integer not null,
subtype integer not null,
column_name varchar(30) not null,
ctype integer,
-- intentionally swapped: column_name, ctype
constraint child_fk
foreign key (app_id, report_id, otype, subtype, column_name, ctype)
references parent (app_id, report_id, otype, subtype, column_name,
ctype)
);
-- trigger the problem
insert into child (app_id, report_id, otype, subtype, column_name, ctype)
values ('DEFAULT_APP', 0, -1, -1, 'ID', -1);
/Fredrik Widlert
fredrik.widlert@digpro.se
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