diff options
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/ref/create_view.sgml | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/doc/src/sgml/ref/create_view.sgml b/doc/src/sgml/ref/create_view.sgml index 57bfae30849..a13f1cbde35 100644 --- a/doc/src/sgml/ref/create_view.sgml +++ b/doc/src/sgml/ref/create_view.sgml @@ -323,12 +323,6 @@ CREATE VIEW vista AS SELECT text 'Hello World' AS hello; or set-returning functions. </para> </listitem> - - <listitem> - <para> - The view must not have the <literal>security_barrier</> property. - </para> - </listitem> </itemizedlist> </para> @@ -362,6 +356,19 @@ CREATE VIEW vista AS SELECT text 'Hello World' AS hello; </para> <para> + If an automatically updatable view is marked with the + <literal>security_barrier</> property then all the view's <literal>WHERE</> + conditions (and any conditions using operators which are marked as LEAKPROOF) + will always be evaluated before any conditions that a user of the view has + added. See <xref linkend="rules-privileges"> for full details. Note that, + due to this, rows which are not ultimately returned (because they do not + pass the user's <literal>WHERE</> conditions) may still end up being locked. + <command>EXPLAIN</command> can be used to see which conditions are + applied at the relation level (and therefore do not lock rows) and which are + not. + </para> + + <para> A more complex view that does not satisfy all these conditions is read-only by default: the system will not allow an insert, update, or delete on the view. You can get the effect of an updatable view by |