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.94.2) (envelope-from ) id 1tYQK5-00Ak9D-I9 for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Jan 2025 13:54:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tYQK4-00DN9M-5G for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Jan 2025 13:54:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tYQK3-00DN9A-S3 for pgsql-hackers@lists.postgresql.org; Thu, 16 Jan 2025 13:54:12 +0000 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tYQK3-000iln-0R for pgsql-hackers@postgresql.org; Thu, 16 Jan 2025 13:54:11 +0000 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-2ee397a82f6so1815602a91.2 for ; Thu, 16 Jan 2025 05:54:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737035649; x=1737640449; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=aaDYoYqkF/IOIjMKJ8wOA5KLeqKKclcjgnlcc0ykDJ4=; b=IUetz/2S+ic7+FIP8vWJBIFPZoalLPK5J1QDHVU9t40kxRvx/LfeiKiWy8RkvA5opq XbO8Xo+hAdR5BikpF04oJRFVIEVqH/C8cd0Yqik5pnRtwc+u5omlFZxBkdQREMgyO/Mh GYYBRd7MHATYV9J2WMhMbpNtS2STlD4kJSZ+5i3nPQ5gcMz/sAH9wISq2xy7/DubxpR0 8/YtqRniEesoG+4SODMaoHjA3apw1mfEB7F4PBimztQD2tfM8PhlDM5T7IO99o+Bzrp6 1t/th2le9A5YJ0m0hT7c9ac4mn4K0I3GH1IY+KDLz4M80/pBQv9sbGDwZ8SkMRnkVgtD cAPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737035649; x=1737640449; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=aaDYoYqkF/IOIjMKJ8wOA5KLeqKKclcjgnlcc0ykDJ4=; b=lOMjNwVRDz9s38UkpfHxDvzjKJu2u3onTm+VNsdnk749STmWDt1T+Fewgf3gYq5/tn l1qFbzNcTBFnG9CxltasWtmuaCIHGKn/5/YVI1tXzDez+HoDviiX1DA/7JOvebj7qeN7 0T+k8tSXcEBAjfdUf+77eAl2SiTLQsmn3FDcI8yFj79Rz1vQV9VfyroOGrIYL2iQFZPH uV/AyZ7Cq7zYC3/SqKYHYNtfA+QkYUHebtaOZVoA+8kCs0NCP7lY1akWv+wZ2fT54tkn BnRAzVE0EZtRGMzGus+0wGQRd+INZ7KM7gCcszum3NmZkyPA06/0dj4xCSMiCFjTxZ0r xHwQ== X-Gm-Message-State: AOJu0Yxu7M8uitaD39DzEBKjRxqCQARBDmBN06kFT38Jd4d7YtI9+65t CfCRlwTkTpbIrcV03CPnk+17kaXUkgArd/ILRyWmpCqDzlBK9vmm8I1k5xSTlU0WCAHl+f5O6xf HQytCW2Oyt18oHaNxNO+/k6757jbenDJ4 X-Gm-Gg: ASbGncuq2Dg45b5MTUo82ekplAbYGpecYrCjsgbv+6wQUaBbDR6AnziqPjxcms+N9r4 TnxFHALs9db7l/1PZR42vSqF/dXqzzlC6ifFtmfVzHKG2Co6ZBn8L7KtOEM4YSG2PsB+n1rs= X-Google-Smtp-Source: AGHT+IEYOShcq0eC4egMNE/QgnW5nxnOQn8UdJk/ERs4fyNfmqHoLfGX2qki2tVXPSe8TO+mSuyGYQvpMEIoOTOvcbU= X-Received: by 2002:a17:90b:5201:b0:2ee:ad18:b309 with SMTP id 98e67ed59e1d1-2f548f172f9mr44371326a91.3.1737035648930; Thu, 16 Jan 2025 05:54:08 -0800 (PST) MIME-Version: 1.0 From: Amul Sul Date: Thu, 16 Jan 2025 19:23:31 +0530 X-Gm-Features: AbW1kvZcxWekS4eBcYsXusrPa0MvpXm-pvIZDo5mGWJhVn3NeBZttunfvTKluCQ Message-ID: Subject: Bug in detaching a partition with a foreign key. To: PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000d130d7062bd320d2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d130d7062bd320d2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, While detaching a partition with a foreign key referencing a partitioned ta= ble, I am getting the following error: ERROR: could not find ON INSERT check triggers of foreign key constraint 1= 6636 I haven=E2=80=99t looked closely at what the issue might be, but it seems t= he logic inside DetachPartitionFinalize(), which is supposed to iterate over inherit= ed foreign keys, is lacking. The attached trial patch fixes the issue for me, = but I=E2=80=99m not sure if it=E2=80=99s the correct fix. I=E2=80=99ll take a c= loser look later. Here is the test: CREATE TABLE bar(id int PRIMARY KEY) PARTITION BY RANGE(id); CREATE TABLE bar_p0 PARTITION OF bar FOR VALUES FROM (0) TO (100); CREATE TABLE foo(id int) PARTITION BY RANGE(id); CREATE TABLE foo_p0 PARTITION OF foo FOR VALUES FROM (0) TO (100) PARTITION BY RANGE(id); CREATE TABLE foo_p0_p0 PARTITION OF foo_p0 FOR VALUES FROM (0) TO (100); ALTER TABLE foo_p0 ADD CONSTRAINT child_fk_con FOREIGN KEY (id) REFERENCES = bar; ALTER TABLE foo DETACH PARTITION foo_p0; -- Regards, Amul Sul EDB: http://www.enterprisedb.com --000000000000d130d7062bd320d2 Content-Type: application/x-patch; name="trial.patch" Content-Disposition: attachment; filename="trial.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ze05qd0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggYzQyYTc0MGNjZWYuLmNhY2RiOWI0NzVkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTk5MjYsNiArMTk5MjYsNyBAQCBEZXRhY2hQ YXJ0aXRpb25GaW5hbGl6ZShSZWxhdGlvbiByZWwsIFJlbGF0aW9uIHBhcnRSZWwsIGJvb2wgY29u Y3VycmVudCwKIAlIZWFwVHVwbGUJdHVwbGUsCiAJCQkJbmV3dHVwbGU7CiAJUmVsYXRpb24JdHJp Z3JlbCA9IE5VTEw7CisJTGlzdAkgICAqZmtzaWRzOwogCiAJaWYgKGNvbmN1cnJlbnQpCiAJewpA QCAtMTk5NDYsNiArMTk5NDcsMTEgQEAgRGV0YWNoUGFydGl0aW9uRmluYWxpemUoUmVsYXRpb24g cmVsLCBSZWxhdGlvbiBwYXJ0UmVsLCBib29sIGNvbmN1cnJlbnQsCiAJZmtzID0gY29weU9iamVj dChSZWxhdGlvbkdldEZLZXlMaXN0KHBhcnRSZWwpKTsKIAlpZiAoZmtzICE9IE5JTCkKIAkJdHJp Z3JlbCA9IHRhYmxlX29wZW4oVHJpZ2dlclJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJLyogQ29sbGVjdCBhbGwgdGhlIGNvbnN0cmFpbnQgaWRzICovCisJZm9yZWFjaChjZWxsLCBm a3MpCisJCWZrc2lkcyA9IGxhcHBlbmRfb2lkKGZrc2lkcywgbGZpcnN0X25vZGUoRm9yZWlnbktl eUNhY2hlSW5mbywgY2VsbCktPmNvbm9pZCk7CisKIAlmb3JlYWNoKGNlbGwsIGZrcykKIAl7CiAJ CUZvcmVpZ25LZXlDYWNoZUluZm8gKmZrID0gbGZpcnN0KGNlbGwpOwpAQCAtMTk5NjEsNyArMTk5 NjcsOCBAQCBEZXRhY2hQYXJ0aXRpb25GaW5hbGl6ZShSZWxhdGlvbiByZWwsIFJlbGF0aW9uIHBh cnRSZWwsIGJvb2wgY29uY3VycmVudCwKIAogCQkvKiBjb25zaWRlciBvbmx5IHRoZSBpbmhlcml0 ZWQgZm9yZWlnbiBrZXlzICovCiAJCWlmIChjb25mb3JtLT5jb250eXBlICE9IENPTlNUUkFJTlRf Rk9SRUlHTiB8fAotCQkJIU9pZElzVmFsaWQoY29uZm9ybS0+Y29ucGFyZW50aWQpKQorCQkJIU9p ZElzVmFsaWQoY29uZm9ybS0+Y29ucGFyZW50aWQpIHx8CisJCQlsaXN0X21lbWJlcl9vaWQoZmtz aWRzLCBjb25mb3JtLT5jb25wYXJlbnRpZCkpCiAJCXsKIAkJCVJlbGVhc2VTeXNDYWNoZShjb250 dXApOwogCQkJY29udGludWU7Cg== --000000000000d130d7062bd320d2--