Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wB6sI-000kCg-0u for pgsql-bugs@arkaria.postgresql.org; Fri, 10 Apr 2026 08:05:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wB6sF-00AYPe-0l for pgsql-bugs@arkaria.postgresql.org; Fri, 10 Apr 2026 08:05:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wB6sE-00AYPW-2s for pgsql-bugs@lists.postgresql.org; Fri, 10 Apr 2026 08:05:55 +0000 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wB6sD-00000000JnR-23cm for pgsql-bugs@lists.postgresql.org; Fri, 10 Apr 2026 08:05:55 +0000 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-35d9749c26dso1658460a91.2 for ; Fri, 10 Apr 2026 01:05:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775808351; cv=none; d=google.com; s=arc-20240605; b=Dggh8kmqGmSgQZ8J6ZwhDxotdGixGuC2J9qqIbwQ7gke8HhYa2Q9qdEA5N0Bmt3+v+ 29wRG6Y72WfBv9DEuc6QQRm48pC02owoaolrAfDqIeI8xd0LIlBEded8EGII4a9V757I n5v5UGwaOewVxJPwLHRsf4n546UC1v1GYU/TxZi2QL3v3sv7/tbjKc90EfbAm2nsVOo8 D9NrFrnm4FAPA0gmJIIQQHCUWaZTYmh2OGbE4o1lRZe4n8zVkXqtLVDUhofTJwyHwQtC 36LWnJfayrkKYysyKl3C4/rxMOKKNuAXt2GYew2948fNED+gWEohJhq07y4kAL9oowXx xazg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=dsLEEOo1CBw1ecPCbFYVZc09hqkS0fCOSA6eJ33R8yQ=; fh=Lmw05UXajgPM+wxcxAP86ieyi6gtOPM2H1e/dJM68Lw=; b=jiBNd9zKv733uryBa+1msPuCsQN9MPs+lQgp0DXe3unE4Z0Vh4Z46PHxq50ZhWF/8n wILxdPyJ7Kodf1UbPdSwCVydECylw6f/b/fSU40rTsJkY7EUh5FFSfpPAdsh8d2oLObY FKe9tPWvqBB8OuPNXkqcb+ygjA3VuK+zNfXZey/9E2ZCiujz7gpBE+lvG70U629Ev2Wi hKhGUXcYHepT6yerDBWX6xgb1QKXotbUl+HW6uLFsLlarh1PBHAM44BIZxPtPndfaWoU vGGsdArCikmlCIasSC7M8lN2y8YWfLlJt0IL66M9ixwEV5a/UVwz/FK0OvDq7ngXpOU6 1vdg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775808351; x=1776413151; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=dsLEEOo1CBw1ecPCbFYVZc09hqkS0fCOSA6eJ33R8yQ=; b=RER8LFNfP/q95a/tKfVhqUpG1xL+H5W1JmnoJCl0uZAuPTdYXyNXEgcSRavD5E65bA DcCruZgbr0pJXN/zjH3vWa38/69p/nHElvm0ntboPk8OjshbKV1MIt2QHAji4qnsml5c CqlmEbUFISRYfhUnIBz8V/3goIKJ16SqFPBFgQrMNduVTVYSQvTmng1vCHm9hiVQRYGe ByRQ+yFDKfYo5RotHwtXuusXiVvUTI0H0LC4N2RWqjBjmXcTDOTAjkgjYGHXT0GT37GU +ExSW2zXb1laWJgLMjGo/Xy4J6jSjsQHGL8sFv9gNB5+yHHGIAv6pGsBIBQXhkss/S6o eMEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775808351; x=1776413151; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dsLEEOo1CBw1ecPCbFYVZc09hqkS0fCOSA6eJ33R8yQ=; b=k42P9FhyIYvcpMnkbZ3l8TZ4XaUPzswAIVSM9gtvkdaBg2EvcgqMf8lsRB9Y4hMkFH /iCEzjCSQ8OViQ7XTrfUjnEH0PrZabZjoY4q0lIk2DbIdeFXky0V6pKQ6psx0K6Jk1XK VGwFJg2kMP+yDSzIVa1Mfo31qR1QaUTsd7SXlR+LkBO13VHQ8zXdCnLm4XkjflRnFeXP N95+7nXVkELwFVhwC7IUn/PZIELj+tl+yNeYV3lRe7qA/M60uOILHWXGMFuhmww+T9Ym F9xiSCRJ9fSCpZebzb57hZcs4jqc+1vM8ksRLPETAtTjYHWcgDxrlJsgtksLytPvmQ+H 6ALw== X-Forwarded-Encrypted: i=1; AJvYcCXYroSMhO/COqpdUwy5KOyta4pgeo+s8V/cnIShT4eEsX7heLjYS4Eg7LcFod/hBouJ+3fHHx64ss5H@lists.postgresql.org X-Gm-Message-State: AOJu0YxNbeQVoeM0lrit6UY8GQ0sgP4Lprsyh39hPzG0p8ATqy0wd9ON 6GA7+wgJwwFT/IU9skgLsvdvZGvstDPEkMPbjUAjwk8IGPMutWHx7136clM3Matkb/lSpw+HcFJ pd63VaDcLh9HSctR+NSPG1MkhCeZx9MU= X-Gm-Gg: AeBDiesRCB+r4CzBawchFIA/xmXiBUhLTkYKjVzr4ozPuziYlEyAtYvjDwqXoTfF9wk dpU5f6MlYaXAMu0z191wvL9og5U9y5dDHuwbD3N7HAYWB5StTSHilOjGZhCTC96t4fy9dbFF8Ru JvZ7OSD6Wu50fo6aBk2NYw13Vcni973sjeughzBJtd4FN/udTZWhxCh7J/KRuZ6dwn28QzSEgy8 V69RZZlbHJdLMyWjmesC/QbhUfNKr6uhmwybXPU4zup03kdBYdtRJJpxH+xrYfnN/EUTKqiObal ngwpYgiRkxeR9NCsrGdXKHJkfGkCSCm0JCFhbRAKgae86r5dj3jt/N4M8NuDo494 X-Received: by 2002:a17:90b:4f86:b0:35e:30bc:96d3 with SMTP id 98e67ed59e1d1-35e427eb04dmr2650497a91.9.1775808350971; Fri, 10 Apr 2026 01:05:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Amit Langote Date: Fri, 10 Apr 2026 17:05:33 +0900 X-Gm-Features: AQROBzBw3pEaIeKmSJkS8qnL-n5rWFgeTO0dlDvvGu8RYzd6xJ1y_3BemD-wAg0 Message-ID: Subject: Re: BUG: PostgreSQL 19devel throws internal opfamily error for FK with reordered referenced columns To: Fredrik Widlert Cc: Junwang Zhao , Matheus Alcantara , pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000f301c5064f1699e9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f301c5064f1699e9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Apr 10, 2026 at 4:29=E2=80=AFPM Fredrik Widlert wrote: > Thanks for the very quick fix - it's a great feeling to report a problem > and get it fixed this quickly. Credit goes to Matheus for quickly submitting a well-written patch. > 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. Thanks for confirming that. > 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); Good to know. It's worth adding this case next to the ones Matheus's patch added, which the attached patch does. Will push it shortly. --=20 Thanks, Amit Langote --000000000000f301c5064f1699e9 Content-Type: application/octet-stream; name="v1-0001-Add-test-case-for-same-type-reordered-FK-columns.patch" Content-Disposition: attachment; filename="v1-0001-Add-test-case-for-same-type-reordered-FK-columns.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnsmedj00 RnJvbSAwMWJhY2FiNTRmNTUyMzkxMTY1M2FhZDc2YTc4MjE2ODc4YmQ3MjhiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IEZyaSwgMTAgQXByIDIwMjYgMTc6MDE6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx XSBBZGQgdGVzdCBjYXNlIGZvciBzYW1lLXR5cGUgcmVvcmRlcmVkIEZLIGNvbHVtbnMKClRoZSB0 ZXN0IGFkZGVkIGluIDk4MGMxYTg1ZDgxOSBjb3ZlcmVkIHRoZSBjYXNlIHdoZXJlIHJlb3JkZXJl ZCBGSwpjb2x1bW5zIGhhdmUgZGlmZmVyZW50IHR5cGVzLCB3aGljaCB0cmlnZ2VyZWQgYW4gIm9w ZXJhdG9yIG5vdCBhIG1lbWJlcgpvZiBvcGZhbWlseSIgZXJyb3IgcHJpb3IgdG8gdGhhdCBjb21t aXQuICBBZGQgYSB0ZXN0IGZvciB0aGUgc2FtZS10eXBlCmNhc2UsIHdoZXJlIHRoZSB3cm9uZyBz Y2FuIGtleSBvcmRlcmluZyBpbnN0ZWFkIHByb2R1Y2VkIGEgc3B1cmlvdXMgRksKdmlvbGF0aW9u IHdpdGhvdXQgYW55IGludGVybmFsIGVycm9yLgoKUmVwb3J0ZWQtYnk6IEZyZWRyaWsgV2lkbGVy dCA8ZnJlZHJpay53aWRsZXJ0QGRpZ3Byby5zZT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQURmaFNyOGhZYy00Q3o3dmZYSF9vVi1KcTgxcHlLOVc0cGhMck9Hc3BvdnNnMlc3S3dA bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fa2V5 Lm91dCB8IDEwICsrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fa2V5LnNx bCAgICAgIHwgIDkgKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fa2V5Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9rZXkub3V0CmluZGV4IDlmYTJlMjIz MjlhLi44YjNiMjY4ZGUwZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9m b3JlaWduX2tleS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2tl eS5vdXQKQEAgLTM2NzIsNiArMzY3MiwxNiBAQCBJTlNFUlQgSU5UTyBmcF9ma19vcmRlciBWQUxV RVMgKDMsIDk5LCAnbm9uZScsIDkpOyAgLS0gc2hvdWxkIGZhaWwKIEVSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAiZnBfZmtfb3JkZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgImZwX2ZrX29yZGVyX2FfY19iX2ZrZXkiCiBERVRBSUw6ICBLZXkgKGEsIGMsIGIpPSg5 LCA5OSwgbm9uZSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgImZwX3BrX29yZGVyIi4KIERST1Ag VEFCTEUgZnBfZmtfb3JkZXIsIGZwX3BrX29yZGVyOworLS0gU2FtZS10eXBlIGNvbHVtbnMgaW4g ZGlmZmVyZW50IG9yZGVyOgorQ1JFQVRFIFRBQkxFIGZwX3BrX3NhbWUgKGMxIGludCwgYzIgaW50 LCBQUklNQVJZIEtFWSAoYzEsIGMyKSk7CitJTlNFUlQgSU5UTyBmcF9wa19zYW1lIFZBTFVFUyAo MSwgMik7CitDUkVBVEUgVEFCTEUgZnBfZmtfc2FtZSAoYzEgaW50LCBjMiBpbnQsCisgICAgRk9S RUlHTiBLRVkgKGMyLCBjMSkgUkVGRVJFTkNFUyBmcF9wa19zYW1lIChjMiwgYzEpKTsKK0lOU0VS VCBJTlRPIGZwX2ZrX3NhbWUgVkFMVUVTICgxLCAyKTsgIC0tIHNob3VsZCBzdWNjZWVkCitJTlNF UlQgSU5UTyBmcF9ma19zYW1lIFZBTFVFUyAoOSwgOSk7ICAtLSBzaG91bGQgZmFpbAorRVJST1I6 ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJmcF9ma19zYW1lIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJmcF9ma19zYW1lX2MyX2MxX2ZrZXkiCitERVRBSUw6ICBLZXkgKGMy LCBjMSk9KDksIDkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJmcF9wa19zYW1lIi4KK0RST1Ag VEFCTEUgZnBfZmtfc2FtZSwgZnBfcGtfc2FtZTsKIC0tIERlZmVycmVkIGNvbnN0cmFpbnQ6IGJh dGNoIGZsdXNoZWQgYXQgQ09NTUlULCBub3QgYXQgc3RhdGVtZW50IGVuZAogQ1JFQVRFIFRBQkxF IGZwX3BrX2NvbW1pdCAoYSBpbnQgUFJJTUFSWSBLRVkpOwogQ1JFQVRFIFRBQkxFIGZwX2ZrX2Nv bW1pdCAoYSBpbnQgUkVGRVJFTkNFUyBmcF9wa19jb21taXQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fa2V5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVp Z25fa2V5LnNxbAppbmRleCA5YWZlZTY0ZDFlMC4uN2ViODZiMTg4ZjAgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fa2V5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9mb3JlaWduX2tleS5zcWwKQEAgLTI2NDMsNiArMjY0MywxNSBAQCBJTlNFUlQgSU5UTyBm cF9ma19vcmRlciBWQUxVRVMgKDIsIDIwLCAndHdvJywgMik7ICAtLSBzaG91bGQgc3VjY2VlZAog SU5TRVJUIElOVE8gZnBfZmtfb3JkZXIgVkFMVUVTICgzLCA5OSwgJ25vbmUnLCA5KTsgIC0tIHNo b3VsZCBmYWlsCiBEUk9QIFRBQkxFIGZwX2ZrX29yZGVyLCBmcF9wa19vcmRlcjsKIAorLS0gU2Ft ZS10eXBlIGNvbHVtbnMgaW4gZGlmZmVyZW50IG9yZGVyOgorQ1JFQVRFIFRBQkxFIGZwX3BrX3Nh bWUgKGMxIGludCwgYzIgaW50LCBQUklNQVJZIEtFWSAoYzEsIGMyKSk7CitJTlNFUlQgSU5UTyBm cF9wa19zYW1lIFZBTFVFUyAoMSwgMik7CitDUkVBVEUgVEFCTEUgZnBfZmtfc2FtZSAoYzEgaW50 LCBjMiBpbnQsCisgICAgRk9SRUlHTiBLRVkgKGMyLCBjMSkgUkVGRVJFTkNFUyBmcF9wa19zYW1l IChjMiwgYzEpKTsKK0lOU0VSVCBJTlRPIGZwX2ZrX3NhbWUgVkFMVUVTICgxLCAyKTsgIC0tIHNo b3VsZCBzdWNjZWVkCitJTlNFUlQgSU5UTyBmcF9ma19zYW1lIFZBTFVFUyAoOSwgOSk7ICAtLSBz aG91bGQgZmFpbAorRFJPUCBUQUJMRSBmcF9ma19zYW1lLCBmcF9wa19zYW1lOworCiAtLSBEZWZl cnJlZCBjb25zdHJhaW50OiBiYXRjaCBmbHVzaGVkIGF0IENPTU1JVCwgbm90IGF0IHN0YXRlbWVu dCBlbmQKIENSRUFURSBUQUJMRSBmcF9wa19jb21taXQgKGEgaW50IFBSSU1BUlkgS0VZKTsKIENS RUFURSBUQUJMRSBmcF9ma19jb21taXQgKGEgaW50IFJFRkVSRU5DRVMgZnBfcGtfY29tbWl0Ci0t IAoyLjQ3LjMKCg== --000000000000f301c5064f1699e9--