BUG #5839: pgAdmin makes bad query for creating a table when default value specified

Started by Aren Cambreabout 15 years ago5 messagesbugs
Jump to latest
#1Aren Cambre
aren@arencambre.com

The following bug has been logged online:

Bug reference: 5839
Logged by: Aren Cambre
Email address: aren@arencambre.com
PostgreSQL version: 9.0.2
Operating system: Windows 7 32 bit
Description: pgAdmin makes bad query for creating a table when
default value specified
Details:

Using pgAdmin 1.12.2, I just tried to create a table with a character
varying(18) column. I put "none" (without the quotes) in the "Default value"
field for that column.

When I press OK to create the table, I get a dialog saying:
An error has occurred:
ERROR: column "none" does not exist

This is the SQL that's generated:

CREATE TABLE "raw"."TxDPS geocoding"
(
"HA_Arrest_Key" character varying(18),
gid integer,
"whichToUse" character varying(20) NOT NULL DEFAULT none,
PRIMARY KEY ("HA_Arrest_Key")
)
WITH (
OIDS = FALSE
)
;

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Aren Cambre (#1)
Re: BUG #5839: pgAdmin makes bad query for creating a table when default value specified

"Aren Cambre" <aren@arencambre.com> writes:

Using pgAdmin 1.12.2, I just tried to create a table with a character
varying(18) column. I put "none" (without the quotes) in the "Default value"
field for that column.

When I press OK to create the table, I get a dialog saying:
An error has occurred:
ERROR: column "none" does not exist

Well, yeah, that's what you'll get. I don't see a bug here.
If you want the literal string 'none' as default, you should put quotes
around it. If you don't want a default, you shouldn't put anything
there.

regards, tom lane

#3Aren Cambre
aren@arencambre.com
In reply to: Tom Lane (#2)
Re: BUG #5839: pgAdmin makes bad query for creating a table when default value specified

This came from pgAdmin's *Default value* field. This field is supposed to
accept anything other than a string?

Aren

On Fri, Jan 14, 2011 at 9:51 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Show quoted text

"Aren Cambre" <aren@arencambre.com> writes:

Using pgAdmin 1.12.2, I just tried to create a table with a character
varying(18) column. I put "none" (without the quotes) in the "Default

value"

field for that column.

When I press OK to create the table, I get a dialog saying:
An error has occurred:
ERROR: column "none" does not exist

Well, yeah, that's what you'll get. I don't see a bug here.
If you want the literal string 'none' as default, you should put quotes
around it. If you don't want a default, you shouldn't put anything
there.

regards, tom lane

#4John R Pierce
pierce@hogranch.com
In reply to: Aren Cambre (#3)
Re: BUG #5839: pgAdmin makes bad query for creating a table when default value specified

On 01/14/11 8:12 PM, Aren Cambre wrote:

This came from pgAdmin's *Default value* field. This field is supposed
to accept anything other than a string?

default value can be any valid expression

#5Dave Page
dpage@pgadmin.org
In reply to: John R Pierce (#4)
Re: BUG #5839: pgAdmin makes bad query for creating a table when default value specified

On Sat, Jan 15, 2011 at 4:36 AM, John R Pierce <pierce@hogranch.com> wrote:

On 01/14/11 8:12 PM, Aren Cambre wrote:

This came from pgAdmin's *Default value* field. This field is supposed to
accept anything other than a string?

default value can be any valid expression

Exactly. pgAdmin doesn't have any way to know whether what you've
entered is a plain string or an expression of some kind, so it leaves
it to you to provide the quoting in this case.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company