Hey all, just getting around to updating my development environment to
Postgres 10, and there was something I found while in testing.
Version info: PostgreSQL 10.0 on x86_64-pc-linux-gnu, compiled by gcc
(Debian 6.3.0-18) 6.3.0 20170516, 64-bit
I have some queries that were working in 9.6 which suddenly broke when
moving to 10.
Digging in, the error i'm getting is: ERROR: source for a
multiple-column UPDATE item must be a sub-SELECT or ROW() expression
Test script to replicate:
--so we have something to test with
CREATE TEMPORARY TABLE tst_table (a serial primary key, b text, c text);
--works
UPDATE tst_table
SET (b, c) = ('help me', 'please')
WHERE a = 0;
--does not work
UPDATE tst_table
SET (b) = ('help me')
WHERE a = 0;
So there was a change made, and you now cannot use the multi-column
syntax if you're only updating a single column. Was this intentional?
I looked through my codebase, and luckily I have only a couple places
where that syntax was used. Was just an unexpected change for me as I
couldn't find anything in the release notes about it, nor could I find
any mention of it in the docs. It also didn't issue a warning in 9.6,
so there was nothing to tell me that the syntax was incorrect and
would change later.
Thanks,
-Adam
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general