Skip to content

Commit 86182b1

Browse files
committed
Doc: call out UPDATE syntax change as a v10 compatibility issue.
The change made by commit 906bfca means that if you're writing a parenthesized column list in UPDATE ... SET, but that column list is only one column, you now need to write ROW(expression) on the righthand side, not just a parenthesized expression. This was an intentional change for spec compatibility and potential future expansion of the possibilities for the RHS, but I'd neglected to document it as a compatibility issue, figuring that hardly anyone would bother with parenthesized syntax for a single target column. I was wrong, as shown by questions from Justin Pryzby, Adam Brusselback, and others. Move the release note item into the compatibility section and point out the behavior change for a single target column. Discussion: https://postgr.es/m/CAMjNa7cDLzPcs0xnRpkvqmJ6Vb6G3EH8CYGp9ZBjXdpFfTz6dg@mail.gmail.com
1 parent be72b9c commit 86182b1

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

doc/src/sgml/release-10.sgml

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,32 @@
157157

158158
<listitem>
159159
<!--
160+
2016-11-22 [906bfcad7] Improve handling of "UPDATE ... SET (column_list) = row_
161+
-->
162+
<para>
163+
Use standard row constructor syntax in <literal>UPDATE ... SET
164+
(<replaceable>column_list</replaceable>) = <replaceable>row_constructor</replaceable></literal>
165+
(Tom Lane)
166+
</para>
167+
168+
<para>
169+
The <replaceable>row_constructor</replaceable> can now begin with the
170+
keyword <literal>ROW</literal>; previously that had to be omitted.
171+
If just one column name appears in
172+
the <replaceable>column_list</replaceable>, then
173+
the <replaceable>row_constructor</replaceable> now must use
174+
the <literal>ROW</literal> keyword, since otherwise it is not a valid
175+
row constructor but just a parenthesized expression.
176+
Also, an occurrence
177+
of <literal><replaceable>table_name</replaceable>.*</literal> within
178+
the <replaceable>row_constructor</replaceable> is now expanded into
179+
multiple columns, as occurs in other uses
180+
of <replaceable>row_constructor</replaceable>s.
181+
</para>
182+
</listitem>
183+
184+
<listitem>
185+
<!--
160186
2017-08-04 [c30f1770a] Apply ALTER ... SET NOT NULL recursively in ALTER ... AD
161187
-->
162188
<para>
@@ -1538,26 +1564,6 @@
15381564

15391565
<listitem>
15401566
<!--
1541-
2016-11-22 [906bfcad7] Improve handling of "UPDATE ... SET (column_list) = row_
1542-
-->
1543-
<para>
1544-
Allow standard row constructor syntax in <literal>UPDATE ... SET
1545-
(<replaceable>column_list</replaceable>) = <replaceable>row_constructor</replaceable></literal>
1546-
(Tom Lane)
1547-
</para>
1548-
1549-
<para>
1550-
The <replaceable>row_constructor</replaceable> can now begin with the
1551-
keyword <literal>ROW</literal>; previously that had to be omitted. Also,
1552-
an occurrence of <literal><replaceable>table_name</replaceable>.*</literal>
1553-
within the <replaceable>row_constructor</replaceable> is now expanded into
1554-
multiple columns, as in other uses
1555-
of <replaceable>row_constructor</replaceable>s.
1556-
</para>
1557-
</listitem>
1558-
1559-
<listitem>
1560-
<!--
15611567
2016-09-05 [c54159d44] Make locale-dependent regex character classes work for l
15621568
-->
15631569
<para>

0 commit comments

Comments
 (0)