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 1w2wHH-000kO5-2c for pgsql-bugs@arkaria.postgresql.org; Wed, 18 Mar 2026 19:09:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2wHG-00DZF9-1I for pgsql-bugs@arkaria.postgresql.org; Wed, 18 Mar 2026 19:09:58 +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.96) (envelope-from ) id 1w2wHG-00DZF1-0S for pgsql-bugs@lists.postgresql.org; Wed, 18 Mar 2026 19:09:58 +0000 Received: from mail-dy1-x1332.google.com ([2607:f8b0:4864:20::1332]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2wHC-00000000Pb3-3b4S for pgsql-bugs@postgresql.org; Wed, 18 Mar 2026 19:09:57 +0000 Received: by mail-dy1-x1332.google.com with SMTP id 5a478bee46e88-2c0e3a2605fso481300eec.0 for ; Wed, 18 Mar 2026 12:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1773860995; x=1774465795; darn=postgresql.org; h=mime-version:user-agent:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=ihVRvj9SeYCOc8ZHUxxrbZxe5xbRwEEOVQatYpiFI6w=; b=VvL6QNT4/I6CI1ge93wY0FJJtFMPkLSs01I+NHwr9hH1yIFsh36m/kqNt7SWNeW3rr QRH9nuHF4GqBEOIJuG1DHAX3qcuM3iUgmvGpiIAQXcq7s/IlKtIl8ZHWsTn3J+EmlUu4 5CyNYjIOd98zdndIvGLBtJHiOs/V8rMVoepC0pk/nZDOqUbaN7oVsIObf6C4n2NyjwEY /FrMopAb3qC4WgeW0K+Uo74GbSkrKIskaNw0c2iQnARiR3ifxYRj5Y64PeJ+sIv0uQif AyZYEM0Fk/g3mhOfC0vdvKbQKey5VqnY1lpkKpZJ0nDj8+ZNVXOGwkCe9udjtNuAs7b+ KlNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773860995; x=1774465795; h=mime-version:user-agent:date:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ihVRvj9SeYCOc8ZHUxxrbZxe5xbRwEEOVQatYpiFI6w=; b=h92RiIKM40rv4Vmx4loKo7T36WRpYqF2Np23/Kk1NiRlItJksQ7OMUo8+/g1UowSu0 BicG1La9lnLHbW+eCLunvSgNeuRqEOrC9gAk1CMx5w9fZgIF1n8CFwD92A0epN2dbShS qBRmJlLeAAf5MhT9Jevj7VuVGeLBCjIkwVJBIHkoiEqeo1ZRfQm1P1UshenbRZxcMKS/ imhrFyDcLKF4mGK3LXbFqmarjRdCqNT8cUCzelV1Ccd5Ul4gnFHlsYWkBQsoQvuAcXXS QzvtTbza6gkxySYtO60UeqI8lVLuIKD5asuKW8NsYri9ondIQNnnbJaqysWH1jPpmUS4 iZdA== X-Gm-Message-State: AOJu0YwZpxzmB60IlsMmkbpOihwoU6geqQ3T9+WFwvTGFDCpSshoTvx/ 3P1GC0qhBRzNxSTx+bEX/dSFaUtlG2x8tqKVYsEyHrSEiRF26ob9j2H4NLGgUwdSAbN89dVHG4b C3RI= X-Gm-Gg: ATEYQzyxhgT8Uu5nrBEca/SPH18REtlkC9mf/WTCs2+WJwxG/w+f0Y0HKzOZtLR8df9 RJ10GA3+ZOl6ZmxnfODwbZecRQfjGg1wzWjKAH6jwMeRy1sU8kIrNI+bFZDnZdef9r5mv9QTmyU O+/9zzVF85W4mdi5+chduV4sUINYrFkCsMkxf1ruW6BCfJvwwR1nWwPfdcPHBH+OotxZTXdWaT5 6ZzZV2SN96YD/OQtTRylwbgyqaIX0xrtmrqAb2WwHdUsR+Pam+qH+DzLHbxzBhyixhxHaADNjoL wmP9vJHDcFmrlRi0UgwosxCKlFDnFkYnMGp4HD/V9+LpRaIxOpxTwPVDbjD6vHluBBeAiXBIJne 30l6uvc+X7li1l2MM0WUHxGx7cgOgy2R7MZRyqqMm1PTWfxTaWDJFh3OflYDfYF1b1cE6medhjs 5Hxvu9Hy5eqoLM/i4hNJakZkWMp+Wj+Yg= X-Received: by 2002:a05:7301:9f06:b0:2be:8864:acfe with SMTP id 5a478bee46e88-2c0e50a9167mr2078169eec.21.1773860995168; Wed, 18 Mar 2026 12:09:55 -0700 (PDT) Received: from [10.10.244.3] ([50.175.226.10]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c0e51dd413sm5322789eec.0.2026.03.18.12.09.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Mar 2026 12:09:54 -0700 (PDT) Message-ID: <35c44a4b7fb76d35418c4d66b775a88f4ce60c86.camel@j-davis.com> Subject: ALTER FOREIGN DATA WRAPPER can drop dependency on handler From: Jeff Davis To: pgsql-bugs@postgresql.org Date: Wed, 18 Mar 2026 12:09:54 -0700 Content-Type: multipart/mixed; boundary="=-hwkx2g6B62eJ44Yr2n8v" User-Agent: Evolution 3.52.3-0ubuntu1.1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-hwkx2g6B62eJ44Yr2n8v Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable CREATE FUNCTION test_fdw_handler() RETURNS fdw_handler AS :'regresslib', 'test_fdw_handler' LANGUAGE C; CREATE FOREIGN DATA WRAPPER test_fdw HANDLER test_fdw_handler; -- correctly raises dependency ERROR DROP FUNCTION test_fdw_handler; ALTER FOREIGN DATA WRAPPER test_fdw VALIDATOR postgresql_fdw_validator; -- fails to raise dependency error ERROR DROP FUNCTION test_fdw_handler; Patch attached. Note: I found this while investigating a related issue for the FDW connection function, with patch here: https://www.postgresql.org/message-id/fd49b44dc65da8e71ab20c1cf1ec7e65921c2= 0f5.camel@j-davis.com I am keeping this patch separate for a clean backport. Regards, Jeff Davis --=-hwkx2g6B62eJ44Yr2n8v Content-Disposition: attachment; filename="v1-0001-Fix-dependency-on-FDW-handler.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v1-0001-Fix-dependency-on-FDW-handler.patch"; charset="UTF-8" RnJvbSBiZjc2ODVjYmRhMmM4ODVmY2M2YjlhZWNmMTFkYTVjODg5OGRiNDk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDE4IE1hciAyMDI2IDExOjUyOjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MV0gRml4IGRl cGVuZGVuY3kgb24gRkRXIGhhbmRsZXIuCgpBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBjb3Vs ZCBkcm9wIHRoZSBkZXBlbmRlbmN5IG9uIHRoZSBoYW5kbGVyCmZ1bmN0aW9uIGlmIGl0IHdhc24n dCBleHBsaWNpdGx5IHNwZWNpZmllZC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9mb3JlaWdu Y21kcy5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2ZvcmVpZ25jbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9mb3JlaWduY21kcy5jCmluZGV4IDQ1NjgxMjM1NzgyLi4wYjMxYWZkOGE3OSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9mb3JlaWduY21kcy5jCkBAIC03ODYsNiArNzg2LDExIEBAIEFsdGVyRm9y ZWlnbkRhdGFXcmFwcGVyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJGZHdTdG10ICpzdG10KQog CQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJKGVycm1zZygiY2hhbmdpbmcgdGhlIGZvcmVpZ24tZGF0 YSB3cmFwcGVyIGhhbmRsZXIgY2FuIGNoYW5nZSBiZWhhdmlvciBvZiBleGlzdGluZyBmb3JlaWdu IHRhYmxlcyIpKSk7CiAJfQorCWVsc2UKKwl7CisJCS8qIGhhbmRsZXIgdW5jaGFuZ2VkICovCisJ CWZkd2hhbmRsZXIgPSBmZHdGb3JtLT5mZHdoYW5kbGVyOworCX0KIAogCWlmICh2YWxpZGF0b3Jf Z2l2ZW4pCiAJewotLSAKMi40My4wCgo= --=-hwkx2g6B62eJ44Yr2n8v--