On 2016/12/21 13:42, Robert Haas wrote: > On Tue, Dec 20, 2016 at 9:14 PM, Amit Langote > <langote_amit...@lab.ntt.co.jp> wrote: >> On 2016/12/21 1:45, Alvaro Herrera wrote: >>> Robert Haas wrote: >>>> On Tue, Dec 20, 2016 at 10:27 AM, Alvaro Herrera >>>> <alvhe...@2ndquadrant.com> wrote: >>>>> Even if we decide to keep the message, I think it's not very good >>>>> wording anyhow; as a translator I disliked it on sight. Instead of >>>>> "skipping scan to validate" I would use "skipping validation scan", >>>>> except that it's not clear what it is we're validating. Mentioning >>>>> partition constraint in errcontext() doesn't like a great solution, but >>>>> I can't think of anything better. >>>> >>>> Maybe something like: partition constraint for table \"%s\" is implied >>>> by existing constraints >>> >>> Actually, shouldn't we emit a message if we *don't* skip the check? >> >> Scanning (aka, not skipping) to validate the partition constraint is the >> default behavior, so a user would be expecting it anyway, IOW, need not be >> informed of it. But when ATExecAttachPartition's efforts to avoid the >> scan by comparing the partition constraint against existing constraints >> (which the user most probably deliberately added just for this) succeed, >> that seems like a better piece of information to provide the user with, >> IMHO. But then again, having a message printed before a potentially long >> validation scan seems like something a user would like to see, to know >> what it is that is going to take so long. Hmm. >> >> Anyway, what would the opposite of Robert's suggested message look like: >> "scanning table \"%s\" to validate partition constraint"? > > Maybe: partition constraint for table \"%s\" is implied by existing > constraints
OK, updated patch attached. Thanks, Amit
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index 2a324c0b49..62e18961d3 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -3179,7 +3179,7 @@ ALTER TABLE list_parted2 ATTACH PARTITION part_3_4 FOR VALUES IN (3, 4); ALTER TABLE list_parted2 DETACH PARTITION part_3_4; ALTER TABLE part_3_4 ALTER a SET NOT NULL; ALTER TABLE list_parted2 ATTACH PARTITION part_3_4 FOR VALUES IN (3, 4); -INFO: skipping scan to validate partition constraint +INFO: partition constraint for table "part_3_4" is implied by existing constraints -- check validation when attaching range partitions CREATE TABLE range_parted ( a int, @@ -3204,7 +3204,7 @@ CREATE TABLE part2 ( b int NOT NULL CHECK (b >= 10 AND b < 18) ); ALTER TABLE range_parted ATTACH PARTITION part2 FOR VALUES FROM (1, 10) TO (1, 20); -INFO: skipping scan to validate partition constraint +INFO: partition constraint for table "part2" is implied by existing constraints -- check that leaf partitions are scanned when attaching a partitioned -- table CREATE TABLE part_5 ( @@ -3219,7 +3219,7 @@ ERROR: partition constraint is violated by some row DELETE FROM part_5_a WHERE a NOT IN (3); ALTER TABLE part_5 ADD CONSTRAINT check_a CHECK (a IN (5)), ALTER a SET NOT NULL; ALTER TABLE list_parted2 ATTACH PARTITION part_5 FOR VALUES IN (5); -INFO: skipping scan to validate partition constraint +INFO: partition constraint for table "part_5" is implied by existing constraints -- check that the table being attached is not already a partition ALTER TABLE list_parted2 ATTACH PARTITION part_2 FOR VALUES IN (2); ERROR: "part_2" is already a partition
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers