On 11.12.23 13:22, Amul Sul wrote:
create table t1 (a int, b int generated always as (a + 1) stored);
alter table t1 add column c int, alter column b set expression as (a
+ c);
ERROR: 42703: column "c" does not exist
I think intuitively, this ought to work. Maybe just moving the new
pass
after AT_PASS_ADD_COL would do it.
I think we can't support that (like alter type) since we need to place
this new
pass before AT_PASS_OLD_INDEX & AT_PASS_OLD_CONSTR to re-add indexes and
constraints for the validation.
Could we have AT_PASS_ADD_COL before AT_PASS_OLD_*? So overall it would be
...
AT_PASS_ALTER_TYPE,
AT_PASS_ADD_COL, // moved
AT_PASS_SET_EXPRESSION, // new
AT_PASS_OLD_INDEX,
AT_PASS_OLD_CONSTR,
AT_PASS_ADD_CONSTR,
...
This appears to not break any existing tests.