On 2022-May-11, Justin Pryzby wrote: > I suggest to reference the mvcc docs from the merge docs, or to make the merge > docs themselves include the referenced information. > > diff --git a/doc/src/sgml/ref/merge.sgml b/doc/src/sgml/ref/merge.sgml > index f68aa09736c..99dd5814f36 100644 > --- a/doc/src/sgml/ref/merge.sgml > +++ b/doc/src/sgml/ref/merge.sgml > @@ -544,6 +544,7 @@ MERGE <replaceable > class="parameter">total_count</replaceable> > <command>UPDATE</command> if a concurrent <command>INSERT</command> > occurs. There are a variety of differences and restrictions between > the two statement types and they are not interchangeable. > + See <xref linkend="mvcc"/> for more information.
Reading the paragraph, I think it may be better to do it the other way around: first mention that concurrency is described in the MVCC page, then explain that INSERT ON CONFLICT also exists. What do you think of the attached? -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
>From 5bad2c5a4bcd2bf04751f980f947c1050aeafd03 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Wed, 18 May 2022 18:41:04 +0200 Subject: [PATCH v2] Link to MVCC docs in MERGE docs. --- doc/src/sgml/mvcc.sgml | 2 +- doc/src/sgml/ref/merge.sgml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/mvcc.sgml b/doc/src/sgml/mvcc.sgml index 341fea524a..4446e1c484 100644 --- a/doc/src/sgml/mvcc.sgml +++ b/doc/src/sgml/mvcc.sgml @@ -425,7 +425,7 @@ COMMIT; <para> <command>MERGE</command> allows the user to specify various combinations of <command>INSERT</command>, <command>UPDATE</command> - or <command>DELETE</command> subcommands. A <command>MERGE</command> + and <command>DELETE</command> subcommands. A <command>MERGE</command> command with both <command>INSERT</command> and <command>UPDATE</command> subcommands looks similar to <command>INSERT</command> with an <literal>ON CONFLICT DO UPDATE</literal> clause but does not diff --git a/doc/src/sgml/ref/merge.sgml b/doc/src/sgml/ref/merge.sgml index f68aa09736..6b94c863b5 100644 --- a/doc/src/sgml/ref/merge.sgml +++ b/doc/src/sgml/ref/merge.sgml @@ -539,6 +539,8 @@ MERGE <replaceable class="parameter">total_count</replaceable> </para> <para> + See <xref linkend="mvcc"/> for more details on the behavior of + <command>MERGE</command> under concurrency. You may also wish to consider using <command>INSERT ... ON CONFLICT</command> as an alternative statement which offers the ability to run an <command>UPDATE</command> if a concurrent <command>INSERT</command> -- 2.30.2