Thread: ...

...

From
Date:
Just a quick, silly question about something that has
been driving me insane for the past 20 minutes: why
does the following generate an error in postgresql
6.5?

create table test2(city varchar(35) NULL );

I am using a program which is supposed to work with
postgresql as a database backend but it generates
queries like that which seem to fail on postgresql
6.5. The error is

ERROR:  parser: parse error at or near "null"

(NOT NULL instead of NULL works fine btw)

Is this only supposed to work in the newer versions or
is the query just plain wrong in any version of
postgresql?


__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com

Re:

From
Ron Johnson
Date:
On Mon, 2002-08-05 at 16:51, steven_pannel@yahoo.com wrote:
> Just a quick, silly question about something that has
> been driving me insane for the past 20 minutes: why
> does the following generate an error in postgresql
> 6.5?
>
> create table test2(city varchar(35) NULL );
>
> I am using a program which is supposed to work with
> postgresql as a database backend but it generates
> queries like that which seem to fail on postgresql
> 6.5. The error is
>
> ERROR:  parser: parse error at or near "null"
>
> (NOT NULL instead of NULL works fine btw)
>
> Is this only supposed to work in the newer versions or
> is the query just plain wrong in any version of
> postgresql?

What is your goal?  To make NULL the default value of city?
Specifying NOT NULL is an implicit field constraint saying
that city can not be NULL.  So, I'd guess that pg is thinking,
"does he really only want the values to be NULL", thinking
that that doesn't make sense, and then puking.

--
+-----------------------------------------------------------------+
| Ron Johnson, Jr.        Home: ron.l.johnson@cox.net             |
| Jefferson, LA  USA                                              |
|                                                                 |
| "The greatest dangers to liberty lurk in insidious encroachment |
|  by men of zeal, well-meaning, but without understanding."      |
|   Justice Louis Brandeis, dissenting, Olmstead v US (1928)      |
+-----------------------------------------------------------------+


Re:

From
Tom Lane
Date:
<steven_pannel@yahoo.com> writes:
> why does the following generate an error in postgresql 6.5?

> create table test2(city varchar(35) NULL );
> ERROR:  parser: parse error at or near "null"

NOT NULL is in the SQL specification.  NULL is not (it's the default
behavior and so they saw no need to specify it explicitly).

More recent versions of PG will take NULL, for compatibility with
certain not-very-standards-aware commercial products.  But leave it
out and you'll be happy.

            regards, tom lane