Re: ALTER composite type does not work, but ALTER TABLE which ROWTYPE is used as a type - works fine
| От | Merlin Moncure |
|---|---|
| Тема | Re: ALTER composite type does not work, but ALTER TABLE which ROWTYPE is used as a type - works fine |
| Дата | |
| Msg-id | b42b73150812050508k26ab3580rf7ec0333be166bd7@mail.gmail.com обсуждение исходный текст |
| Ответ на | ALTER composite type does not work, but ALTER TABLE which ROWTYPE is used as a type - works fine ("Dmitry Koterov" <dmitry@koterov.ru>) |
| Ответы |
Re: ALTER composite type does not work, but ALTER TABLE which ROWTYPE is used as a type - works fine
|
| Список | pgsql-hackers |
On Thu, Dec 4, 2008 at 9:53 AM, Dmitry Koterov <dmitry@koterov.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
В списке pgsql-hackers по дате отправления: