• Stephen Frost's avatar
    Perform RLS WITH CHECK before constraints, etc · e89bd02f
    Stephen Frost authored
    The RLS capability is built on top of the WITH CHECK OPTION
    system which was added for auto-updatable views, however, unlike
    WCOs on views (which are mandated by the SQL spec to not fire until
    after all other constraints and checks are done), it makes much more
    sense for RLS checks to happen earlier than constraint and uniqueness
    checks.
    
    This patch reworks the structure which holds the WCOs a bit to be
    explicitly either VIEW or RLS checks and the RLS-related checks are
    done prior to the constraint and uniqueness checks.  This also allows
    better error reporting as we are now reporting when a violation is due
    to a WITH CHECK OPTION and when it's due to an RLS policy violation,
    which was independently noted by Craig Ringer as being confusing.
    
    The documentation is also updated to include a paragraph about when RLS
    WITH CHECK handling is performed, as there have been a number of
    questions regarding that and the documentation was previously silent on
    the matter.
    
    Author: Dean Rasheed, with some kabitzing and comment changes by me.
    e89bd02f
create_policy.sgml 14.1 KB