aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorDean Rasheed <dean.a.rasheed@gmail.com>2023-11-18 12:41:23 +0000
committerDean Rasheed <dean.a.rasheed@gmail.com>2023-11-18 12:41:23 +0000
commit4bc8f29088f8a2e9c89e6c0819337c4c8bf5f20a (patch)
treea19ba57dbe058958fd8574e2079841dbd20789a3 /doc/src
parent823eb3db1c50a6b8a89ebedc1db96b14de140183 (diff)
downloadpostgresql-4bc8f29088f8a2e9c89e6c0819337c4c8bf5f20a.tar.gz
postgresql-4bc8f29088f8a2e9c89e6c0819337c4c8bf5f20a.zip
doc: improve description of privileges for MERGE and update glossary.
On the MERGE page, the description of the privileges required could be taken to imply that the SELECT privilege is required on all columns of the data source, whereas actually it is only required on the columns referred to by conditions or expressions in the MERGE command. Re-word it to make that a little clearer, and mention expressions as well as conditions. Also, add a glossary entry for MERGE, and nearby on the glossary page, mention MERGE in the list of commands that cannot update a materialized view. Noted by Jian He. Patch by me, reviewed by Jian He. Discussion: https://postgr.es/m/CACJufxHuSoRXKwr0MtSFLXuT2nFVWcVfEWhxg7qdP9h%2Bs3a%2BUw%40mail.gmail.com
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/glossary.sgml21
-rw-r--r--doc/src/sgml/ref/merge.sgml10
2 files changed, 24 insertions, 7 deletions
diff --git a/doc/src/sgml/glossary.sgml b/doc/src/sgml/glossary.sgml
index fe8def41d04..5815fa44710 100644
--- a/doc/src/sgml/glossary.sgml
+++ b/doc/src/sgml/glossary.sgml
@@ -1097,8 +1097,8 @@
(just like a <glossterm linkend="glossary-view">view</glossterm>),
but stores data in the same way that a
<glossterm linkend="glossary-table">table</glossterm> does. It cannot be
- modified via <command>INSERT</command>, <command>UPDATE</command>, or
- <command>DELETE</command> operations.
+ modified via <command>INSERT</command>, <command>UPDATE</command>,
+ <command>DELETE</command>, or <command>MERGE</command> operations.
</para>
<para>
For more information, see
@@ -1107,6 +1107,23 @@
</glossdef>
</glossentry>
+ <glossentry id="glossary-merge">
+ <glossterm>Merge</glossterm>
+ <glossdef>
+ <para>
+ An <acronym>SQL</acronym> command used to conditionally add, modify,
+ or remove <glossterm linkend="glossary-tuple">rows</glossterm>
+ in a given <glossterm linkend="glossary-table">table</glossterm>,
+ using data from a source
+ <glossterm linkend="glossary-relation">relation</glossterm>.
+ </para>
+ <para>
+ For more information, see
+ <xref linkend="sql-merge"/>.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id="glossary-mvcc">
<glossterm>Multi-version concurrency control (MVCC)</glossterm>
<glossdef>
diff --git a/doc/src/sgml/ref/merge.sgml b/doc/src/sgml/ref/merge.sgml
index 0f61d472cd8..d5ad930eef2 100644
--- a/doc/src/sgml/ref/merge.sgml
+++ b/doc/src/sgml/ref/merge.sgml
@@ -102,14 +102,14 @@ DELETE
that are referred to in the <literal>SET</literal> clause.
If you specify an insert action, you must have the <literal>INSERT</literal>
privilege on the <replaceable class="parameter">target_table_name</replaceable>.
- If you specify an delete action, you must have the <literal>DELETE</literal>
+ If you specify a delete action, you must have the <literal>DELETE</literal>
privilege on the <replaceable class="parameter">target_table_name</replaceable>.
Privileges are tested once at statement start and are checked
whether or not particular <literal>WHEN</literal> clauses are executed.
- You will require the <literal>SELECT</literal> privilege on the
- <replaceable class="parameter">data_source</replaceable> and any column(s)
- of the <replaceable class="parameter">target_table_name</replaceable>
- referred to in a <literal>condition</literal>.
+ You will require the <literal>SELECT</literal> privilege on any column(s)
+ of the <replaceable class="parameter">data_source</replaceable> and
+ <replaceable class="parameter">target_table_name</replaceable> referred to
+ in any <literal>condition</literal> or <literal>expression</literal>.
</para>
<para>