On 23.06.25 18:11, jian he wrote:
> seems we didn't check the ALTER TABLE case.
>
> CREATE TYPE double_int as (a int, b int);
> CREATE TABLE y (a int);
> alter table y add column b double_int GENERATED ALWAYS AS ((a * 2, a *
> 3)) VIRTUAL;
>
> in ATExecAddColumn, we can change it to:
> CheckAttributeType(NameStr(attribute->attname),
> attribute->atttypid, attribute->attcollation,
> list_make1_oid(rel->rd_rel->reltype),
> (attribute->attgenerated ==
> ATTRIBUTE_GENERATED_VIRTUAL ? CHKATYPE_IS_VIRTUAL : 0));
Yes, this is an existing fault separate from this patch. I have pushed
a fix for this along these lines.