Re: [HACKERS] generated columns
Erik Rijkers <er@xs4all.nl>
From: Erikjan Rijkers <er@xs4all.nl>
To: Sergei Kornilov <sk@zsrv.org>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, pgsql-hackers
<pgsql-hackers@postgresql.org>, Michael Paquier <michael.paquier@gmail.com>,
Jaime Casanova <jaime.casanova@2ndquadrant.com>
Date: 2018-10-31T07:58:20Z
Lists: pgsql-hackers
On 2018-10-30 16:14, Sergei Kornilov wrote: > Hi > > I applied this patch on top 2fe42baf7c1ad96b5f9eb898161e258315298351 > commit and found a bug while adding STORED column: > > postgres=# create table test(i int); > CREATE TABLE > postgres=# insert into test values (1),(2); > INSERT 0 2 > postgres=# alter table test add column gen_stored integer GENERATED > ALWAYS AS ((i * 2)) STORED; > ALTER TABLE > postgres=# alter table test add column gen_virt integer GENERATED > ALWAYS AS ((i * 2)); > ALTER TABLE > postgres=# table test; > i | gen_stored | gen_virt > ---+------------+---------- > 1 | | 2 > 2 | | 4 > > Virtual columns was calculated on table read and its ok, but stored > column does not update table data. This workaround is possible: update test set i = i where gen_stored is null returning *; i | gen_stored | gen_virt ---+------------+---------- 1 | 2 | 2 2 | 4 | 4 (2 rows) table test ; i | gen_stored | gen_virt ---+------------+---------- 3 | 6 | 6 4 | 8 | 8 1 | 2 | 2 2 | 4 | 4 (4 rows) Hm, well, I suppose it's still a bug... I have also noticed that logical replication isn't possible on tables with a generated column. That's a shame but I suppsoe that is as expected. Erik Rijkers > > regards, Sergei
Commits
-
Generated columns
- fc22b6623b6b 12.0 landed
-
Add walreceiver API to get remote server version
- 69039fda837d 12.0 landed
-
Add pg_partition_tree to display information about partitions
- d5eec4eefde7 12.0 cited
-
pg_restore: Augment documentation for -N option
- 2fe42baf7c1a 12.0 cited
-
Change delimiter used for display of NextXID
- 59a884e9854c 9.6.0 cited