BUG #5839: pgAdmin makes bad query for creating a table when default value specified
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
)
;
"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
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 "Defaultvalue"
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 existWell, 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
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
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