Thread: BUG #4166: Alter table add column from PgAdminIII

BUG #4166: Alter table add column from PgAdminIII

From
"Mike Gagnon"
Date:
The following bug has been logged online:

Bug reference:      4166
Logged by:          Mike Gagnon
Email address:      mike.gagnon@bellnet.ca
PostgreSQL version: 8.3.1-1
Operating system:   Windows XP
Description:        Alter table add column from PgAdminIII
Details:

Hi Postgres Experts,
I used PGAdmin III to add a character varying column(400) length, not null
default ''.  I get the column displayed in psql when I do a simple query
like SELECT * from MyTable limit 1;

When I try to do Update MyTable set NewColumn='something';   I get the error
saying that the column doesn't exist....  It thinks it exists when I do my
select, but it doesn't recognize this new column in my UPDATE...

I'm scared... I have a deadline coming up and I'm praying this one gets
fixed soon.

Many thanks!
Mike

Re: BUG #4166: Alter table add column from PgAdminIII

From
"Heikki Linnakangas"
Date:
Mike Gagnon wrote:
> I used PGAdmin III to add a character varying column(400) length, not null
> default ''.  I get the column displayed in psql when I do a simple query
> like SELECT * from MyTable limit 1;
>
> When I try to do Update MyTable set NewColumn='something';   I get the error
> saying that the column doesn't exist....  It thinks it exists when I do my
> select, but it doesn't recognize this new column in my UPDATE...

Perhaps you created the column with a capital letter? If that's the
case, you'll have to quote the column name: ... set
"NewColumn"='something'. If that's what happened, I'd suggest dropping
and recreating the column in all-lowercase.

If this didn't help, please post the output of the "SELECT *" verbatim.

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Re: BUG #4166: Alter table add column from PgAdminIII

From
Tom Lane
Date:
"Mike Gagnon" <mike.gagnon@bellnet.ca> writes:
> I used PGAdmin III to add a character varying column(400) length, not null
> default ''.  I get the column displayed in psql when I do a simple query
> like SELECT * from MyTable limit 1;

> When I try to do Update MyTable set NewColumn='something';   I get the error
> saying that the column doesn't exist....

I'm betting you have a case sensitivity problem.  Either you created the
column as "NewColumn" with quotes and are trying to reference it without
quotes, or vice versa.

            regards, tom lane