postgres.git / summary / log / commit / refs

commit    315ca7ffb90939af8b3e08f5a2a6afbfc6d89c7d
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Thu Jul 20 16:41:26 2017 +0000

    Doc: clarify description of degenerate NATURAL joins.
    
    Claiming that NATURAL JOIN is equivalent to CROSS JOIN when there are
    no common column names is only strictly correct if it's an inner join;
    you can't say e.g. CROSS LEFT JOIN.  Better to explain it as meaning
    JOIN ON TRUE, instead.  Per a suggestion from David Johnston.
    
    Discussion: https://postgr.es/m/CAKFQuwb+mYszQhDS9f_dqRrk1=Pe-S6D=XMkAXcDf4ykKPmgKQ@mail.gmail.com


doc/src/sgml/queries.sgml | 4 ++-- doc/src/sgml/ref/select.sgml | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/src/sgml/queries.sgml b/doc/src/sgml/queries.sgml index 92e54067c99..5adba0af33f 100644 --- a/doc/src/sgml/queries.sgml +++ b/doc/src/sgml/queries.sgml @@ -393,8 +393,8 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r consisting of all column names that appear in both input tables. As with <literal>USING</>, these columns appear only once in the output table. If there are no common - column names, <literal>NATURAL</literal> behaves like - <literal>CROSS JOIN</literal>. + column names, <literal>NATURAL JOIN</literal> behaves like + <literal>JOIN ... ON TRUE</literal>, producing a cross-product join. </para> <note> diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml index ac84022c01f..95f23219746 100644 --- a/doc/src/sgml/ref/select.sgml +++ b/doc/src/sgml/ref/select.sgml @@ -603,9 +603,12 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ] <varlistentry> <term><literal>NATURAL</literal></term> <listitem> - <para><literal>NATURAL</literal> is shorthand for a + <para> + <literal>NATURAL</literal> is shorthand for a <literal>USING</> list that mentions all columns in the two - tables that have the same names. + tables that have matching names. If there are no common + column names, <literal>NATURAL</literal> is equivalent + to <literal>ON TRUE</>. </para> </listitem> </varlistentry> [parent: c2bbec9f2b36]