mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Fix virtual generated column type checking for ALTER TABLE
Virtual generated columns have some special checks in CheckAttributeType(), mainly to check that domains are not used. But this check was only applied during CREATE TABLE, not during ALTER TABLE. This fixes that. Reported-by: jian he <jian.universality@gmail.com> Discussion: https://www.postgresql.org/message-id/CACJufxE0KHR__-h=zHXbhSNZXMMs4LYo4-dbj8H3YoStYBok1Q@mail.gmail.com
This commit is contained in:
@ -7374,7 +7374,7 @@ ATExecAddColumn(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
/* make sure datatype is legal for a column */
|
||||
CheckAttributeType(NameStr(attribute->attname), attribute->atttypid, attribute->attcollation,
|
||||
list_make1_oid(rel->rd_rel->reltype),
|
||||
0);
|
||||
(attribute->attgenerated == ATTRIBUTE_GENERATED_VIRTUAL ? CHKATYPE_IS_VIRTUAL : 0));
|
||||
|
||||
InsertPgAttributeTuples(attrdesc, tupdesc, myrelid, NULL, NULL);
|
||||
|
||||
@ -14426,7 +14426,7 @@ ATPrepAlterColumnType(List **wqueue,
|
||||
/* make sure datatype is legal for a column */
|
||||
CheckAttributeType(colName, targettype, targetcollid,
|
||||
list_make1_oid(rel->rd_rel->reltype),
|
||||
0);
|
||||
(attTup->attgenerated == ATTRIBUTE_GENERATED_VIRTUAL ? CHKATYPE_IS_VIRTUAL : 0));
|
||||
|
||||
if (attTup->attgenerated == ATTRIBUTE_GENERATED_VIRTUAL)
|
||||
{
|
||||
|
Reference in New Issue
Block a user