From b54aad8e34bd6299093e965c50f4a23da96d7cc3 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Thu, 9 Mar 2017 13:09:48 -0500 Subject: [PATCH] Document lack of validation when attaching foreign partitions. Ashutosh Bapat, revised a bit by me. Discussion: http://postgr.es/m/CAFjFpRdLaCa-1wJase0=YWG5o3cJnbuUt_vrqm2TDBKM_vQ_oA@mail.gmail.com --- doc/src/sgml/ref/alter_table.sgml | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index 8b251f9e5d..077c00373d 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -743,18 +743,25 @@ ALTER TABLE [ IF EXISTS ] name - A full table scan is performed on the table being attached to check that - no existing row in the table violates the partition constraint. It is - possible to avoid this scan by adding a valid CHECK - constraint to the table that would allow only the rows satisfying the - desired partition constraint before running this command. It will be - determined using such a constraint that the table need not be scanned - to validate the partition constraint. This does not work, however, if - any of the partition keys is an expression and the partition does not - accept NULL values. If attaching a list partition - that will not accept NULL values, also add - NOT NULL constraint to the partition key column, - unless it's an expression. + If the new partition is a regular table, a full table scan is performed + to check that no existing row in the table violates the partition + constraint. It is possible to avoid this scan by adding a valid + CHECK constraint to the table that would allow only + the rows satisfying the desired partition constraint before running this + command. It will be determined using such a constraint that the table + need not be scanned to validate the partition constraint. This does not + work, however, if any of the partition keys is an expression and the + partition does not accept NULL values. If attaching + a list partition that will not accept NULL values, + also add NOT NULL constraint to the partition key + column, unless it's an expression. + + + + If the new partition is a foreign table, nothing is done to verify + that all the rows in the foreign table obey the partition constraint. + (See the discussion in about + constraints on the foreign table.)