mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Compute root->qual_security_level in a less random place.
We can set this up once and for all in subquery_planner's initial survey of the flattened rangetable, rather than incrementally adjusting it in build_simple_rel. The previous approach made it rather hard to reason about exactly when the value would be available, and we were definitely using it in some places before the final value was computed. Noted while fooling around with Amit Langote's patch to delay creation of inheritance child rels. That didn't break this code, but it made it even more fragile, IMO.
This commit is contained in:
@ -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));
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user