Re: ALTER composite type does not work, but ALTER TABLE which ROWTYPE is used as a type - works fine

From: "Merlin Moncure" <mmoncure(at)gmail(dot)com>
To: dmitry(at)koterov(dot)ru
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: ALTER composite type does not work, but ALTER TABLE which ROWTYPE is used as a type - works fine
Date: 2008-12-05 13:08:01
Message-ID: b42b73150812050508k26ab3580rf7ec0333be166bd7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Dec 4, 2008 at 9:53 AM, Dmitry Koterov <dmitry(at)koterov(dot)ru> wrote:
> Hello.
>
> I can successfully ALTER a NON-EMPTY table (ct) which ROWTYPE is used as a
> column type for another table (dt):
>
> CREATE TABLE ct (id INTEGER);
> CREATE TABLE dt (id INTEGER, c ct);
>
> INSERT INTO dt VALUES(1, '(666)');
> SELECT * FROM dt;
> -- (1, '(666)')
>
> ALTER TABLE ct ADD COLUMN n INTEGER;
> SELECT * FROM dt;
> -- (1, '(666,)')
>
> You see, '(666,)' means that the new field is added successfully.
>
>
> But, if I declare ct as a COMPOSITE type (not a table), it is not permitted
> to ALTER this type (Postgres says that there are dependensies on ct).
> Why?

Because of this there is no reason to ever use 'create type'....always
use 'create table'. 'alter type' can't add/remove columns anyways.

merlin

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message tmp 2008-12-05 13:08:59 Re: Optimizing DISTINCT with LIMIT
Previous Message Mark Cave-Ayland 2008-12-05 13:05:43 Re: [postgis-devel] CLUSTER in 8.3 on GIST indexes break