diff --git a/doc/src/sgml/ref/create_policy.sgml b/doc/src/sgml/ref/create_policy.sgml
index 0c5cd06518a..564a16994d6 100644
--- a/doc/src/sgml/ref/create_policy.sgml
+++ b/doc/src/sgml/ref/create_policy.sgml
@@ -72,7 +72,10 @@ CREATE POLICY name ON
Policies can be applied for specific commands or for specific roles. The
default for newly created policies is that they apply for all commands and
- roles, unless otherwise specified.
+ roles, unless otherwise specified. Multiple policies may apply to a single
+ command; see below for more details.
+ summarizes how the different types
+ of policy apply to specific commands.
@@ -353,6 +356,105 @@ CREATE POLICY name ON
+
+
+ Policies Applied by Command Type
+
+
+
+
+
+
+ Command
+ SELECT/ALL policy
+ INSERT/ALL policy
+ UPDATE/ALL policy
+ DELETE/ALL policy
+
+
+ USING expression
+ WITH CHECK expression
+ USING expression
+ WITH CHECK expression
+ USING expression
+
+
+
+
+ SELECT
+ Existing row
+ —
+ —
+ —
+ —
+
+
+ SELECT FOR UPDATE/SHARE
+ Existing row
+ —
+ Existing row
+ —
+ —
+
+
+ INSERT
+ —
+ New row
+ —
+ —
+ —
+
+
+ INSERT ... RETURNING
+
+ New row
+
+
+ If read access is required to the existing or new row (for example,
+ a WHERE or RETURNING clause
+ that refers to columns from the relation).
+
+
+
+ New row
+ —
+ —
+ —
+
+
+ UPDATE
+
+ Existing & new rows
+
+
+ —
+ Existing row
+ New row
+ —
+
+
+ DELETE
+
+ Existing row
+
+
+ —
+ —
+ —
+ Existing row
+
+
+ ON CONFLICT DO UPDATE
+ Existing & new rows
+ —
+ Existing row
+ New row
+ —
+
+
+
+
+