This does not seem good: regression=# create table pp (a int, b int) partition by range(a); CREATE TABLE regression=# create table cc (a int generated always as (b+1) stored, b int); CREATE TABLE regression=# alter table pp attach partition cc for values from ('1') to ('10'); ALTER TABLE regression=# insert into pp values(1,100); INSERT 0 1 regression=# table pp; a | b -----+----- 101 | 100 (1 row)
I'm not sure to what extent it's sensible for partitions to have GENERATED columns that don't match their parent; but even if that's okay for payload columns I doubt we want to allow partitioning columns to be GENERATED. regards, tom lane