On Mon, Dec 18, 2023 at 3:01 PM Peter Eisentraut <pe...@eisentraut.org>
wrote:

> 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.
>

(Sorry, for the delay)

Agree. I did that change in 0001 patch.

Regards,
Amul

Attachment: v7-0001-Code-refactor-convert-macro-listing-to-enum.patch
Description: Binary data

Attachment: v7-0002-Code-refactor-separate-function-to-find-all-depen.patch
Description: Binary data

Attachment: v7-0003-Allow-to-change-generated-column-expression.patch
Description: Binary data

Reply via email to