• Stephen Frost's avatar
    Clean up includes from RLS patch · 80eacaa3
    Stephen Frost authored
    The initial patch for RLS mistakenly included headers associated with
    the executor and planner bits in rewrite/rowsecurity.h.  Per policy and
    general good sense, executor headers should not be included in planner
    headers or vice versa.
    
    The include of execnodes.h was a mistaken holdover from previous
    versions, while the include of relation.h was used for Relation's
    definition, which should have been coming from utils/relcache.h.  This
    patch cleans these issues up, adds comments to the RowSecurityPolicy
    struct and the RowSecurityConfigType enum, and changes Relation->rsdesc
    to Relation->rd_rsdesc to follow Relation field naming convention.
    
    Additionally, utils/rel.h was including rewrite/rowsecurity.h, which
    wasn't a great idea since that was pulling in things not really needed
    in utils/rel.h (which gets included in quite a few places).  Instead,
    use 'struct RowSecurityDesc' for the rd_rsdesc field and add comments
    explaining why.
    
    Lastly, add an include into access/nbtree/nbtsort.c for
    utils/sortsupport.h, which was evidently missed due to the above mess.
    
    Pointed out by Tom in 16970.1415838651@sss.pgh.pa.us; note that the
    concerns regarding a similar situation in the custom-path commit still
    need to be addressed.
    80eacaa3
rel.h 16.7 KB