BUG #6489: Alter table with composite type/table - Mailing list pgsql-bugs

From rikard.pavelic@zg.htnet.hr
Subject BUG #6489: Alter table with composite type/table
Date
Msg-id E1S1Han-0001M2-WB@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #6489: Alter table with composite type/table
Re: BUG #6489: Alter table with composite type/table
Re: BUG #6489: Alter table with composite type/table
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      6489
Logged by:          Rikard Pavelic
Email address:      rikard.pavelic@zg.htnet.hr
PostgreSQL version: 9.1.2
Operating system:   Windows 7
Description:=20=20=20=20=20=20=20=20

I'm trying to push types in Postgres and have run into some
limitations/inconsistent behaviors.

Currently I'm declaring types and using them in other types and tables as
composites.
But types don't support inheritance so I'm thinking about declaring tables
and using it's types instead of just declaring types.

I've run into problems with adding new columns:

create table t1(i int, j int);
create table t2(i int, j t1);
insert into t2 values(1,(2,3));

This works:
alter table t1 add x float not null;
This doesn't work:
alter table t1 add x float not null default 0;
It fails with ERROR:  cannot alter table "t1" because column "t2.j" uses its
row type

While first alter table will not do as someone would expect (t2.x will be
null) I'm fine with this behavior as it is consistent with types not
allowing not null on attributes.

But I would expect second alter to pass and enforcing not null and default
when adding this column in table and not enforcing not null and default when
adding into composite type for another table.

Is this by design, oversight or a TODO?

Regards,
Rikard

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #6486: configure - unable to cross-compile postgresql with openssl using Fedora MinGW
Next
From: linehanp@tcd.ie
Date:
Subject: BUG #6488: Installation instructions slightly wrong.