Re: Adding columns NOT NULL

From: Tino Wildenhain <tino(at)wildenhain(dot)de>
To: Laurent ROCHE <laurent_roche(at)yahoo(dot)com>
Cc: pgAdmin III support <pgadmin-support(at)postgresql(dot)org>
Subject: Re: Adding columns NOT NULL
Date: 2008-03-07 14:08:23
Message-ID: 47D14C57.8010404@wildenhain.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Hi,

Laurent ROCHE wrote:
> Hi,
>
> There is a little anomaly in the way adding an extra column is treated
> in pgAdmin III 1.8.2.
> ... particularly if this is a NOT NULL column.
>
> When adding the column my_col with a DEFAULT value, the code generated
> will be:
> ALTER TABLE my_table ADD COLUMN my_col boolean;
> ALTER TABLE my_table ALTER COLUMN my_col SET DEFAULT false;
>
> This works fine ... as long as I don't insert columns with NOT NULL
> property.
> In which case, I SUPPOSE it generates:
> ALTER TABLE my_table ADD COLUMN my_col boolean NOT NULL;
> ALTER TABLE my_table ALTER COLUMN my_col SET DEFAULT false;
>
> This will not work, because the column is created with no default (hence
> no values) and does not support NULL values, hence creation fails.
>
> ** In pgAdmin, adding an extra column with NOT NULL property is
> impossible ! **
>
> So I would suggest to generate the code:
> ALTER TABLE my_table ADD COLUMN my_col boolean NOT NULL DEFAULT false;
>
> Which does work !
> And that allows to create a column with not NULL values, in one
> operation, and more importantly with the column populated.

Yes but it would be too special to just only have "false if boolean".
In this case either the "NOT NULL" option has to go or the
default value should be possible to specify. (otoh, it should
be a rare case anyway that you have a single default value
for all rows)

Regards
Tino

In response to

Browse pgadmin-support by date

  From Date Subject
Next Message RuiDC 2008-03-07 20:29:58 Re: Compiling PgAdmin 1.8.x on Debian LennyAMD64?
Previous Message Dave Page 2008-03-07 12:12:45 Re: Complete breakdown of pgadmin when trying to connect to server or modify properties of tables of views