Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

nodeModifyTable.c

Blame
    • Stephen Frost's avatar
      e89bd02f
      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
      History
      Perform RLS WITH CHECK before constraints, etc
      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.