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 1w2xh9-000lih-16 for pgsql-bugs@arkaria.postgresql.org; Wed, 18 Mar 2026 20:40:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2xh7-00ED1k-0X for pgsql-bugs@arkaria.postgresql.org; Wed, 18 Mar 2026 20:40:45 +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 1w2xh6-00ED1c-2R for pgsql-bugs@lists.postgresql.org; Wed, 18 Mar 2026 20:40:44 +0000 Received: from mail-dl1-x1233.google.com ([2607:f8b0:4864:20::1233]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2xh3-0000000104t-2Q8j for pgsql-bugs@postgresql.org; Wed, 18 Mar 2026 20:40:44 +0000 Received: by mail-dl1-x1233.google.com with SMTP id a92af1059eb24-12a693cdf29so100320c88.0 for ; Wed, 18 Mar 2026 13:40:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1773866440; x=1774471240; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=k60TlMzSRFHvorwNkjbdjf8QBAAYxmD56pPVUyPC8pc=; b=CINoqGvRv/tVzi8rSriXqQons/20KK1RskAiQ+T26Bdrhon9DG16Wxfmk0v3kMI5gF t8VvXHHQDQnSwGAUcmxIgDGEt9cYSr6NIFJxTEYf2ydorBAvqizk+2y6KNRMd1xHqOdH gRuz06Ub7wobnw4yGEk4co8hewJxvX+NUZnEPo/CxzBlnUO0N2GqQioSK4DY16x7O7ee AwSnYNs6YPV6JoJm1Ldu+ELi50rwCaG9wAEulAv7P56J7oIphR7fyX++m8qm7XXTERGs EYh+Gd6A78w95XVbLaHFT4hgFOlfiV9G98dKqNOuIb9jGsKFkfQUdrk42SrYkTa5f2c2 zHiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773866440; x=1774471240; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=k60TlMzSRFHvorwNkjbdjf8QBAAYxmD56pPVUyPC8pc=; b=HemEpEeDBUrW0VYDbXmonkAxLB4Xglq/9su1htUMeyyo8nRsdffKo/SzluWUgi/blZ 6iRZeQSlKYRMqE24iR//uYQ9AKZqqDGazZMMfvdwJ9kcrsgApWkg4f5LgkysCSTSz/HC lU96GOCOy4pn2iGlq4XogvsjjdLSNWp9lWReKb5MKNr2kbTcHesMeO8WiX3VjBvGie/h /nvKwnfbGjZ7MlbJnTgVskYI9jbvYBrZWB0YFtVs0/xz63Qhz8qsUx3CWtw8xwW+t+jN tpinRhhPtVLoRvPOtrIXbP/Ut0jK/lRGOngJybYdfNRBrNQvKh3i2iyfd4fFxya0zlb7 Ng4Q== X-Gm-Message-State: AOJu0Yy71Evm5aqyJG16roJDFnKuFE4c91Tmq2lyx+9/U4cA0Wqq4bpP 8e2k9hGDuWnNxLlpFBUwecReZKCyPkK9FKf9rbNjds9PzuxCpYioceZ5USp9csqww2eybOF1u3Q 3/u4= X-Gm-Gg: ATEYQzzq5TmTVW1lixNw9Jfrws2UgHbRLKHUYhqeIBPwJOyQPvy9xMOwMa/yEm2WqSD VDBOkJD6LdvTheK7ueHN4kUtTPvpM0JLIr+wMYWHPARr6FIevpCo32FjvrJlLrOYL59um71EVzz QRkx8voyZoMh7zkWJVlsx9ljJZe7tas82iirSN5Am0lDgMc/ehw2GaO2L9uRFKVTTT+DAgLvHke b0zZKEoJP7u4Ev8VEtBSMzCBzivs8XegUPVugz9ky4j0vKSnWqVJED8ObKrTogCNBWysi+JSAb9 L7D5lQKdGzisS+LEU3K8pWmMvbr5qIfYZVwIFvXFj6iHJ/0VOEmtUz3Iy0+1MTwH7Wk8NFB/05r N8FooDOmJEwESJdJr6i1IAYK5s2Cnu2gBH773Xl36lQLOqFWbUTjjTnxIcDN6LrLxhAlMQuVTWi J6KROrSmkuAXC89pxGw8uy X-Received: by 2002:a05:693c:401a:b0:2be:171c:2180 with SMTP id 5a478bee46e88-2c0f3861cf3mr303513eec.0.1773866439743; Wed, 18 Mar 2026 13:40:39 -0700 (PDT) Received: from [10.10.244.3] ([50.175.226.10]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c0e560fb5fsm6860903eec.31.2026.03.18.13.40.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Mar 2026 13:40:39 -0700 (PDT) Message-ID: <05e57a2122d22962cdd8f344bcb3af7a1e1c487f.camel@j-davis.com> Subject: Re: ALTER FOREIGN DATA WRAPPER can drop dependency on handler From: Jeff Davis To: Nathan Bossart Cc: pgsql-bugs@postgresql.org Date: Wed, 18 Mar 2026 13:40:38 -0700 In-Reply-To: References: <35c44a4b7fb76d35418c4d66b775a88f4ce60c86.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-kj5+DbeSmu5sFaA/S1Au" 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 --=-kj5+DbeSmu5sFaA/S1Au Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2026-03-18 at 14:29 -0500, Nathan Bossart wrote: > This matches what we do for the validator a few lines down, so it > makes > sense to me.=C2=A0 Could it be worth adding a test or two? Added a test. Testing in the other direction (adding HANDLER and leaving VALIDATOR unspecified, then dropping the validator) is slightly more complex because I don't want to drop the built-in postgresql_fdw_validator. But the patch in the other thread can be extended with a new test or two also, which will cover that case. Will backport all the way. Regards, Jeff Davis --=-kj5+DbeSmu5sFaA/S1Au Content-Disposition: attachment; filename="v2-0001-Fix-dependency-on-FDW-handler.patch" Content-Type: text/x-patch; name="v2-0001-Fix-dependency-on-FDW-handler.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3ODYyZTE3Mzc0MWRlZTcxNzJiMzgwYzIzYTI0YTA3Y2ZhZGU0MWVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDE4IE1hciAyMDI2IDExOjUyOjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2Ml0gRml4IGRl cGVuZGVuY3kgb24gRkRXIGhhbmRsZXIuCgpBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBjb3Vs ZCBkcm9wIHRoZSBkZXBlbmRlbmN5IG9uIHRoZSBoYW5kbGVyCmZ1bmN0aW9uIGlmIGl0IHdhc24n dCBleHBsaWNpdGx5IHNwZWNpZmllZC4KClJldmlld2VkLWJ5OiBOYXRoYW4gQm9zc2FydCA8bmF0 aGFuZGJvc3NhcnRAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzM1 YzQ0YTRiN2ZiNzZkMzU0MThjNGQ2NmI3NzVhODhmNGNlNjBjODYuY2FtZWxAai1kYXZpcy5jb20K QmFja3BhdGNoLXRocm91Z2g6IDE0Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNt ZHMuYyAgICAgICAgIHwgNSArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWdu X2RhdGEub3V0IHwgNyArKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2RhdGEu c3FsICAgICAgfCA1ICsrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9mb3JlaWduY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwppbmRleCA0NTY4MTIzNTc4Mi4uMGIzMWFmZDhhNzkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2ZvcmVpZ25jbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwpAQCAtNzg2LDYgKzc4NiwxMSBAQCBBbHRl ckZvcmVpZ25EYXRhV3JhcHBlcihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRmR3U3RtdCAqc3Rt dCkKIAkJZXJlcG9ydChXQVJOSU5HLAogCQkJCShlcnJtc2coImNoYW5naW5nIHRoZSBmb3JlaWdu LWRhdGEgd3JhcHBlciBoYW5kbGVyIGNhbiBjaGFuZ2UgYmVoYXZpb3Igb2YgZXhpc3RpbmcgZm9y ZWlnbiB0YWJsZXMiKSkpOwogCX0KKwllbHNlCisJeworCQkvKiBoYW5kbGVyIHVuY2hhbmdlZCAq LworCQlmZHdoYW5kbGVyID0gZmR3Rm9ybS0+ZmR3aGFuZGxlcjsKKwl9CiAKIAlpZiAodmFsaWRh dG9yX2dpdmVuKQogCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9y ZWlnbl9kYXRhLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91 dAppbmRleCA2YWY1NGQ5ODAzZi4uMzVkNzUxODBkZmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKQEAgLTEwNiw2ICsxMDYsMTMgQEAgRVJST1I6ICBjb25m bGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucwogTElORSAxOiAuLi5HTiBEQVRBIFdSQVBQRVIg dGVzdF9mZHcgSEFORExFUiB0ZXN0X2Zkd19oYW5kbGVyIEhBTkRMRVIgaW4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBD UkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHcgSEFORExFUiB0ZXN0X2Zkd19oYW5k bGVyOworLS0gc2hvdWxkIHByZXNlcnZlIGRlcGVuZGVuY3kgb24gdGVzdF9mZHdfaGFuZGxlcgor QUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHcgVkFMSURBVE9SIHBvc3RncmVzcWxf ZmR3X3ZhbGlkYXRvcjsKK1dBUk5JTkc6ICBjaGFuZ2luZyB0aGUgZm9yZWlnbi1kYXRhIHdyYXBw ZXIgdmFsaWRhdG9yIGNhbiBjYXVzZSB0aGUgb3B0aW9ucyBmb3IgZGVwZW5kZW50IG9iamVjdHMg dG8gYmVjb21lIGludmFsaWQKK0RST1AgRlVOQ1RJT04gdGVzdF9mZHdfaGFuZGxlcigpOyAtLSBF UlJPUgorRVJST1I6ICBjYW5ub3QgZHJvcCBmdW5jdGlvbiB0ZXN0X2Zkd19oYW5kbGVyKCkgYmVj YXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgZm9yZWlnbi1kYXRhIHdy YXBwZXIgdGVzdF9mZHcgZGVwZW5kcyBvbiBmdW5jdGlvbiB0ZXN0X2Zkd19oYW5kbGVyKCkKK0hJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0 b28uCiBEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfZmR3OwogLS0gQUxURVIgRk9SRUlH TiBEQVRBIFdSQVBQRVIKIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGZvbyBPUFRJT05TIChu b25leGlzdGVudCAnZmR3Jyk7ICAgICAgICAgLS0gRVJST1IKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3Jl aWduX2RhdGEuc3FsCmluZGV4IDA4NGQ1NTU5ZTA5Li4wMDgwYmZiODg1NiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWlnbl9kYXRhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9mb3JlaWduX2RhdGEuc3FsCkBAIC02Nyw2ICs2NywxMSBAQCBDUkVBVEUgRlVOQ1RJ T04gaW52YWxpZF9mZHdfaGFuZGxlcigpIFJFVFVSTlMgaW50IExBTkdVQUdFIFNRTCBBUyAnU0VM RUNUIDE7JzsKIENSRUFURSBGT1JFSUdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdyBIQU5ETEVSIGlu dmFsaWRfZmR3X2hhbmRsZXI7ICAtLSBFUlJPUgogQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVS IHRlc3RfZmR3IEhBTkRMRVIgdGVzdF9mZHdfaGFuZGxlciBIQU5ETEVSIGludmFsaWRfZmR3X2hh bmRsZXI7ICAtLSBFUlJPUgogQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfZmR3IEhB TkRMRVIgdGVzdF9mZHdfaGFuZGxlcjsKKworLS0gc2hvdWxkIHByZXNlcnZlIGRlcGVuZGVuY3kg b24gdGVzdF9mZHdfaGFuZGxlcgorQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHcg VkFMSURBVE9SIHBvc3RncmVzcWxfZmR3X3ZhbGlkYXRvcjsKK0RST1AgRlVOQ1RJT04gdGVzdF9m ZHdfaGFuZGxlcigpOyAtLSBFUlJPUgorCiBEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3Rf ZmR3OwogCiAtLSBBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUgotLSAKMi40My4wCgo= --=-kj5+DbeSmu5sFaA/S1Au--