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.



Reply via email to