aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/optimizer/plan/planner.c2
-rw-r--r--src/test/regress/expected/inherit.out9
-rw-r--r--src/test/regress/sql/inherit.sql3
3 files changed, 14 insertions, 0 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index cbd3fb8e0ea..5ed691c2e32 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -1732,6 +1732,8 @@ inheritance_planner(PlannerInfo *root)
withCheckOptionLists = list_make1(parse->withCheckOptions);
if (parse->returningList)
returningLists = list_make1(parse->returningList);
+ /* Disable tuple routing, too, just to be safe */
+ root->partColsUpdated = false;
}
else
{
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out
index 4725a159487..c6abcfc3cb1 100644
--- a/src/test/regress/expected/inherit.out
+++ b/src/test/regress/expected/inherit.out
@@ -665,6 +665,15 @@ select tableoid::regclass::text as relname, parted_tab.* from parted_tab order b
parted_tab_part3 | 3 | a
(3 rows)
+-- modifies partition key, but no rows will actually be updated
+explain update parted_tab set a = 2 where false;
+ QUERY PLAN
+--------------------------------------------------------
+ Update on parted_tab (cost=0.00..0.00 rows=0 width=0)
+ -> Result (cost=0.00..0.00 rows=0 width=0)
+ One-Time Filter: false
+(3 rows)
+
drop table parted_tab;
-- Check UPDATE with multi-level partitioned inherited target
create table mlparted_tab (a int, b char, c text) partition by list (a);
diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql
index e91f61bc377..ae4358588c3 100644
--- a/src/test/regress/sql/inherit.sql
+++ b/src/test/regress/sql/inherit.sql
@@ -168,6 +168,9 @@ from
where parted_tab.a = ss.a;
select tableoid::regclass::text as relname, parted_tab.* from parted_tab order by 1,2;
+-- modifies partition key, but no rows will actually be updated
+explain update parted_tab set a = 2 where false;
+
drop table parted_tab;
-- Check UPDATE with multi-level partitioned inherited target