aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/optimizer/plan/planner.c10
-rw-r--r--src/backend/optimizer/util/relnode.c11
2 files changed, 10 insertions, 11 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index f08f1cdf7e7..3a1b846217b 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -731,6 +731,16 @@ subquery_planner(PlannerGlobal *glob, Query *parse,
if (rte->lateral)
root->hasLateralRTEs = true;
+
+ /*
+ * We can also determine the maximum security level required for any
+ * securityQuals now. Addition of inheritance-child RTEs won't affect
+ * this, because child tables don't have their own securityQuals; see
+ * expand_single_inheritance_child().
+ */
+ if (rte->securityQuals)
+ root->qual_security_level = Max(root->qual_security_level,
+ list_length(rte->securityQuals));
}
/*
diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c
index f86f39c197f..272e2eb10af 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -325,17 +325,6 @@ build_simple_rel(PlannerInfo *root, int relid, RelOptInfo *parent)
}
/*
- * This is a convenient spot at which to note whether rels participating
- * in the query have any securityQuals attached. If so, increase
- * root->qual_security_level to ensure it's larger than the maximum
- * security level needed for securityQuals. (Must do this before we call
- * apply_child_basequals, else we'll hit an Assert therein.)
- */
- if (rte->securityQuals)
- root->qual_security_level = Max(root->qual_security_level,
- list_length(rte->securityQuals));
-
- /*
* Copy the parent's quals to the child, with appropriate substitution of
* variables. If any constant false or NULL clauses turn up, we can mark
* the child as dummy right away. (We must do this immediately so that