From cba4e78f3599f7edc3fb53d1b094f037fbb8158a Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Sat, 15 Oct 2022 19:24:26 +0200 Subject: Disallow MERGE cleanly for foreign partitions While directly targetting a foreign table with MERGE was already expressly forbidden, we failed to catch the case of a partitioned table that has a foreign table as a partition; and the result if you try is an incomprehensible error. Fix that by adding a specific check. Backpatch to 15. Reported-by: Tatsuhiro Nakamori Discussion: https://postgr.es/m/bt22nakamorit@oss.nttdata.com --- contrib/postgres_fdw/sql/postgres_fdw.sql | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'contrib/postgres_fdw/sql') diff --git a/contrib/postgres_fdw/sql/postgres_fdw.sql b/contrib/postgres_fdw/sql/postgres_fdw.sql index 1962051e541..b0dbb41fb55 100644 --- a/contrib/postgres_fdw/sql/postgres_fdw.sql +++ b/contrib/postgres_fdw/sql/postgres_fdw.sql @@ -2207,6 +2207,10 @@ select tableoid::regclass, * FROM remp2; delete from itrtest; +-- MERGE ought to fail cleanly +merge into itrtest using (select 1, 'foo') as source on (true) + when matched then do nothing; + create unique index loct1_idx on loct1 (a); -- DO NOTHING without an inference specification is supported -- cgit v1.2.3