BUG #6489: Alter table with composite type/table

From: rikard(dot)pavelic(at)zg(dot)htnet(dot)hr
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6489: Alter table with composite type/table
Date: 2012-02-25 13:23:18
Message-ID: E1S1Han-0001M2-WB@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 6489
Logged by: Rikard Pavelic
Email address: rikard(dot)pavelic(at)zg(dot)htnet(dot)hr
PostgreSQL version: 9.1.2
Operating system: Windows 7
Description:

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

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2012-02-26 22:32:53 Re: BUG #6488: Installation instructions slightly wrong.
Previous Message linehanp 2012-02-25 10:16:16 BUG #6488: Installation instructions slightly wrong.