Re: [GENERAL] Altering a table with a rowtype column - Mailing list pgsql-bugs

From Merlin Moncure
Subject Re: [GENERAL] Altering a table with a rowtype column
Date
Msg-id CAHyXU0yBCz5t8BqfBK7M9dSWNw4+hvV9BWAizy9ZXhNYxTBAww@mail.gmail.com
Whole thread Raw
Responses Re: [GENERAL] Altering a table with a rowtype column
List pgsql-bugs
On Wed, Mar 7, 2012 at 11:45 AM, Mike Blackwell <mike.blackwell@rrd.com> wrote:
>
> works for me -- what version are you on?
>
> merlin
>
> ------
>
> [wcs1459@aclnx-cisp01 ~]$ psql --version
> psql (PostgreSQL) 9.1.1
> contains support for command-line editing
>
>
> [wcs1459@aclnx-cisp01 ~]$ cat x
> create table a (
>   id serial,
>   stuff text,
>   more_stuff text
> );
>
> create table a_audit (
>   id serial,
>   a_old a,
>   a_new a
> );
>
> alter table a add column even_more_stuff boolean not null default false;
>
>
> [wcs1459@aclnx-cisp01 ~]$ psql -f x
> psql:x:5: NOTICE:  CREATE TABLE will create implicit sequence "a_id_seq" for
> serial column "a.id"
> CREATE TABLE
> psql:x:11: NOTICE:  CREATE TABLE will create implicit sequence
> "a_audit_id_seq" for serial column "a_audit.id"
> CREATE TABLE
> psql:x:13: ERROR:  cannot alter table "a" because column "a_audit.a_new"
> uses its row type

aha! that's not what you posted last time.  you appended 'not null
default false'; which inexplicably breaks the ALTER.

try this:
ALTER TABLE a ADD COLUMN even_more_stuff text not null;
ALTER TABLE a ALTER even_more_stuff set default false;
ALTER TABLE a DROP COLUMN even_more_stuff;
ALTER TABLE a ADD COLUMN even_more_stuff boolean not null default false;

(this really looks like a bug in postgres, cc-ing to bugs)

merlin

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Extension tracking temp table and causing update failure
Next
From: Tom Lane
Date:
Subject: Re: Extension tracking temp table and causing update failure