The change made by commit
906bfcad7 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
+ Use standard row constructor syntax in UPDATE ... SET
+ (column_list) = row_constructor
+ (Tom Lane)
+
+
+ The row_constructor can now begin with the
+ keyword ROW; previously that had to be omitted.
+ If just one column name appears in
+ the column_list, then
+ the row_constructor now must use
+ the ROW keyword, since otherwise it is not a valid
+ row constructor but just a parenthesized expression.
+ Also, an occurrence
+ of table_name.* within
+ the row_constructor is now expanded into
+ multiple columns, as occurs in other uses
+ of row_constructors.
+
+
+
+
+
- Allow standard row constructor syntax in UPDATE ... SET
- (column_list) = row_constructor
- (Tom Lane)
-
-
- The row_constructor can now begin with the
- keyword ROW; previously that had to be omitted. Also,
- an occurrence of table_name.*
- within the row_constructor is now expanded into
- multiple columns, as in other uses
- of row_constructors.
-
-
-
-
-