Re: foreign partition DDL regression tests

Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>

From: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
To: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-07T12:14:35Z
Lists: pgsql-hackers
Hi Amit,
Thanks for adding testcases. Overall the testcases look good.

The testcase is using ALTER TABLE to modify foreign table schema.
Though this works, I think a better option is to use ALTER FOREIGN
TABLE.

Something not related to this patch but
-- no attach partition validation occurs for foreign tables
ALTER TABLE pt2 ATTACH PARTITION pt2_1 FOR VALUES IN (1);

I am wondering whether we can improve this. For local tables, if a
valid constraint equivalent to the partitioning condition is not
present on the table being attached, it scans the data to verify
partition conditions. But for a foreign table, we don't want to do
that since the constraint is not guaranteed to be valid after the
initial check. For a normal foreign table a user can set a constraint
if s/he knows that that constraint will be honoured on the foreign
server. Thus instead of saying that we do not validate data, we can
refuse to attach a partition if corresponding check constraint is
absent on the foreign table being attached. A user will then be forced
to add that constraint if s/he is sure that the constraint will be
obeyed on the foreign server.

-- 
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company


Commits

  1. Document lack of validation when attaching foreign partitions.

  2. Add tests for foreign partitions.