From 1bd3b03bcd1f8af6cec3a22c40e96c9cde46e705 Mon Sep 17 00:00:00 2001 From: amit Date: Fri, 6 Oct 2017 10:23:24 +0900 Subject: [PATCH] Like c31e9d4bafd, but for check_default_allows_bound --- src/backend/catalog/partition.c | 10 +++------- src/test/regress/expected/alter_table.out | 4 ++-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c index 3a8306a055..1459fba778 100644 --- a/src/backend/catalog/partition.c +++ b/src/backend/catalog/partition.c @@ -920,7 +920,7 @@ check_default_allows_bound(Relation parent, Relation default_rel, if (PartConstraintImpliedByRelConstraint(default_rel, def_part_constraints)) { ereport(INFO, - (errmsg("partition constraint for table \"%s\" is implied by existing constraints", + (errmsg("updated partition constraint for default partition \"%s\" is implied by existing constraints", RelationGetRelationName(default_rel)))); return; } @@ -956,16 +956,12 @@ check_default_allows_bound(Relation parent, Relation default_rel, { part_rel = heap_open(part_relid, NoLock); - /* - * If the partition constraints on default partition child imply - * that it will not contain any row that would belong to the new - * partition, we can avoid scanning the child table. - */ + /* Can we skip scanning this part_rel? */ if (PartConstraintImpliedByRelConstraint(part_rel, def_part_constraints)) { ereport(INFO, - (errmsg("partition constraint for table \"%s\" is implied by existing constraints", + (errmsg("updated partition constraint for default partition \"%s\" is implied by existing constraints", RelationGetRelationName(part_rel)))); heap_close(part_rel, NoLock); diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index dbe438dcd4..98f4db1f85 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -3345,7 +3345,7 @@ INFO: partition constraint for table "part_3_4" is implied by existing constrai -- check if default partition scan skipped ALTER TABLE list_parted2_def ADD CONSTRAINT check_a CHECK (a IN (5, 6)); CREATE TABLE part_55_66 PARTITION OF list_parted2 FOR VALUES IN (55, 66); -INFO: partition constraint for table "list_parted2_def" is implied by existing constraints +INFO: updated partition constraint for default partition "list_parted2_def" is implied by existing constraints -- check validation when attaching range partitions CREATE TABLE range_parted ( a int, @@ -3492,7 +3492,7 @@ DROP TABLE quuux1, quuux2; -- should validate for quuux1, but not for quuux2 CREATE TABLE quuux1 PARTITION OF quuux FOR VALUES IN (1); CREATE TABLE quuux2 PARTITION OF quuux FOR VALUES IN (2); -INFO: partition constraint for table "quuux_default1" is implied by existing constraints +INFO: updated partition constraint for default partition "quuux_default1" is implied by existing constraints DROP TABLE quuux; -- -- DETACH PARTITION -- 2.11.0