Thread: [BUGS] BUG #14718: unable to update table with identity column GENERATEDALWAYS
[BUGS] BUG #14718: unable to update table with identity column GENERATEDALWAYS
From
zam6ak@gmail.com
Date:
The following bug has been logged on the website: Bug reference: 14718 Logged by: zam6ak Email address: zam6ak@gmail.com PostgreSQL version: 10beta1 Operating system: Windows Server 2012 R2 Description: I have downloaded a PG10 distro for Windows from BigSQL. if I try to update table that uses identity column generated always, the update fails... If I switch to "generated by default" it works... -- create tbl1 create table tbl1 ( id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- fails --id bigint GENERATED BY DEFAULTAS IDENTITY PRIMARY KEY, -- works name text NOT NULL ); -- add some values insert into tbl1 (name) values ('Tommy'); -- verify select * from tbl1; -- 1;"Tommy" -- now try to update update tbl1 set name = 'Bobby' where id = 1; ERROR: column "id" can only be updated to DEFAULT DETAIL: Column "id" is an identity column defined as GENERATED ALWAYS. ********** Error ********** ERROR: column "id" can only be updated to DEFAULT SQL state: 428C9 Detail: Column "id" is an identity column defined as GENERATED ALWAYS. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] BUG #14718: unable to update table with identity columnGENERATED ALWAYS
From
Peter Eisentraut
Date:
On 6/26/17 15:22, zam6ak@gmail.com wrote: > -- now try to update > update tbl1 set name = 'Bobby' where id = 1; > > ERROR: column "id" can only be updated to DEFAULT > DETAIL: Column "id" is an identity column defined as GENERATED ALWAYS. This is working as expected. What is the problem? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] BUG #14718: unable to update table with identity columnGENERATED ALWAYS
From
Andres Freund
Date:
On 2017-06-30 17:03:22 -0400, Peter Eisentraut wrote: > On 6/26/17 15:22, zam6ak@gmail.com wrote: > > -- now try to update > > update tbl1 set name = 'Bobby' where id = 1; > > > > ERROR: column "id" can only be updated to DEFAULT > > DETAIL: Column "id" is an identity column defined as GENERATED ALWAYS. > > This is working as expected. What is the problem? "id" is not being updated in that statement? - Andres -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
[BUGS] Re: BUG #14718: unable to update table with identity column GENERATEDALWAYS
From
Thomas Kellerer
Date:
Peter Eisentraut schrieb am 30.06.2017 um 23:03: > On 6/26/17 15:22, zam6ak@gmail.com wrote: >> -- now try to update >> update tbl1 set name = 'Bobby' where id = 1; >> >> ERROR: column "id" can only be updated to DEFAULT >> DETAIL: Column "id" is an identity column defined as GENERATED ALWAYS. > > This is working as expected. What is the problem? I'd say the problem is, that the id column is NOT updated in that statement, only the name. The identity column is only included in the WHERE clause - it's not changed at all. Surely that is not the way it's meant to be? -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] Re: BUG #14718: unable to update table with identity column GENERATED ALWAYS
From
Tom Lane
Date:
Thomas Kellerer <spam_eater@gmx.net> writes: > Peter Eisentraut schrieb am 30.06.2017 um 23:03: >> This is working as expected. What is the problem? > I'd say the problem is, that the id column is NOT updated in that statement, only the name. Yeah. Looks to me like the code that was added to rewriteTargetListIU for this did not quite understand the meaning of the "apply_default" flag. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] BUG #14718: unable to update table with identity columnGENERATED ALWAYS
From
Peter Eisentraut
Date:
On 6/26/17 15:22, zam6ak@gmail.com wrote: > -- create tbl1 > create table tbl1 ( > id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- fails > --id bigint GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, -- works > name text NOT NULL > ); > -- add some values > insert into tbl1 (name) values ('Tommy'); > -- verify > select * from tbl1; -- 1;"Tommy" > > -- now try to update > update tbl1 set name = 'Bobby' where id = 1; > > ERROR: column "id" can only be updated to DEFAULT > DETAIL: Column "id" is an identity column defined as GENERATED ALWAYS. Fix committed. Thanks for the report. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs