postgres.git / summary / log / commit / refs
commit cfd790159d5e2301b3534c8d63d75e904d050f6b
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Date: Wed Feb 11 10:53:01 2026 +0000
First released in: 14.22, 15.17, 16.13, 17.9, 18.3
doc: Mention all SELECT privileges required by INSERT ... ON CONFLICT.
On the INSERT page, mention that SELECT privileges are also required
for any columns mentioned in the arbiter clause, including those
referred to by the constraint, and clarify that this applies to all
forms of ON CONFLICT, not just ON CONFLICT DO UPDATE.
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Reviewed-by: Viktor Holmberg <v@viktorh.net>
Discussion: https://postgr.es/m/CAEZATCXGwMQ+x00YY9XYG46T0kCajH=21QaYL9Xatz0dLKii+g@mail.gmail.com
Backpatch-through: 14
doc/src/sgml/ref/insert.sgml | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/doc/src/sgml/ref/insert.sgml b/doc/src/sgml/ref/insert.sgml
index 954ee3af3a1..d73ff3d51f7 100644
--- a/doc/src/sgml/ref/insert.sgml
+++ b/doc/src/sgml/ref/insert.sgml
@@ -113,10 +113,13 @@ INSERT INTO <replaceable class="parameter">table_name</replaceable> [ AS <replac
<literal>INSERT</literal> privilege on the listed columns.
Similarly, when <literal>ON CONFLICT DO UPDATE</literal> is specified, you
only need <literal>UPDATE</literal> privilege on the column(s) that are
- listed to be updated. However, <literal>ON CONFLICT DO UPDATE</literal>
- also requires <literal>SELECT</literal> privilege on any column whose
- values are read in the <literal>ON CONFLICT DO UPDATE</literal>
- expressions or <replaceable>condition</replaceable>.
+ listed to be updated. However, all forms of <literal>ON CONFLICT</literal>
+ also require <literal>SELECT</literal> privilege on any column whose values
+ are read. This includes any column mentioned in
+ <replaceable>conflict_target</replaceable> (including columns referred to
+ by the arbiter constraint), and any column mentioned in an
+ <literal>ON CONFLICT DO UPDATE</literal> <replaceable>expression</replaceable>,
+ or a <literal>WHERE</literal> clause <replaceable>condition</replaceable>.
</para>
<para>
[parent: 24dc2f3cd90b]