summaryrefslogtreecommitdiff
path: root/doc/src/sgml
diff options
context:
space:
mode:
authorTom Lane2017-07-20 16:41:26 +0000
committerTom Lane2017-07-20 16:41:41 +0000
commit769eaef7600b0cc63bdc488428c4e01902261a73 (patch)
treeb717a6cd542cd7eeda42f317e9fe001d8635165a /doc/src/sgml
parent6ab4a1136ed949fa77e74d97dd4fecdb8bc8c380 (diff)
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
Diffstat (limited to 'doc/src/sgml')
-rw-r--r--doc/src/sgml/queries.sgml4
-rw-r--r--doc/src/sgml/ref/select.sgml7
2 files changed, 7 insertions, 4 deletions
diff --git a/doc/src/sgml/queries.sgml b/doc/src/sgml/queries.sgml
index 4094d722831..96c252bc28e 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 c7fc50c5b82..820b8d47762 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -538,9 +538,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>