mirror of
https://github.com/postgres/postgres.git
synced 2025-06-11 20:28:21 +03:00
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 <bt22nakamorit@oss.nttdata.com> Discussion: https://postgr.es/m/bt22nakamorit@oss.nttdata.com
This commit is contained in:
@ -8284,6 +8284,11 @@ select tableoid::regclass, * FROM remp2;
|
||||
(3 rows)
|
||||
|
||||
delete from itrtest;
|
||||
-- MERGE ought to fail cleanly
|
||||
merge into itrtest using (select 1, 'foo') as source on (true)
|
||||
when matched then do nothing;
|
||||
ERROR: cannot execute MERGE on relation "remp1"
|
||||
DETAIL: This operation is not supported for foreign tables.
|
||||
create unique index loct1_idx on loct1 (a);
|
||||
-- DO NOTHING without an inference specification is supported
|
||||
insert into itrtest values (1, 'foo') on conflict do nothing returning *;
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user