Wrong default values of columns

Started by Andre Rotheover 16 years ago5 messagesbugs
Jump to latest
#1Andre Rothe
phosco@gmx.de

Hi,

I have installed Postgres 8.3.8 on Fedora Linux. If I create a table,
the default values will be set by the database to

NULL::timestamp without time zone

for a timezone column and to

NULL::character varying

for a varchar column. How I can prevent such a behaviour? Both column
defaults should be NULL. I have read some posts about this point, it
seems to be a problem of a so called "acts_as_tsearch plugin", but I'm
not familiar enough with Postgres to know, what it means. Any other
detailled solutions?

Thanks
Andre

#2Robert Haas
robertmhaas@gmail.com
In reply to: Andre Rothe (#1)
Re: Wrong default values of columns

On Thu, Sep 17, 2009 at 8:15 AM, Andre Rothe <phosco@gmx.de> wrote:

Hi,

I have installed Postgres 8.3.8 on Fedora Linux. If I create a table,
the default values will be set by the database to

NULL::timestamp without time zone

for a timezone column and to

NULL::character varying

for a varchar column. How I can prevent such a behaviour? Both column
defaults should be NULL.

Uh... that's exactly what they were set to. The :: stuff is just a
type-annotation. Your defaults really are NULL.

I have read some posts about this point, it
seems to be a problem of a so called "acts_as_tsearch plugin", but I'm
not familiar enough with Postgres to know, what it means. Any other
detailled solutions?

I don't think that has anything to do with this.

...Robert

#3Andre Rothe
phosco@gmx.de
In reply to: Andre Rothe (#1)
Re: Wrong default values of columns

The problem is, that I get the default values from a metadata query
with JDBC,
so I have to parse every return value for such an annotation before I
can
use them.

So it seems that I could change the jdbc driver to a newer version. I
use the
PostgreSQL 8.1 JDBC3 with SSL (build 407).

Thanks
Andre

Show quoted text

On Sep 17, 3:53 pm, robertmh...@gmail.com (Robert Haas) wrote:

Uh... that's exactly what they were set to.  The :: stuff is just a
type-annotation.  Your defaults really are NULL.

#4Robert Haas
robertmhaas@gmail.com
In reply to: Andre Rothe (#3)
Re: Wrong default values of columns

On Thu, Sep 17, 2009 at 10:44 AM, Andre Rothe <phosco@gmx.de> wrote:

The problem is, that I get the default values from a metadata query
with JDBC,
so I have to parse every return value for such an annotation before I
can
use them.

That sounds annoying, but it's not a PostgreSQL bug.

So it seems that I could change the jdbc driver to a newer version. I
use the
PostgreSQL 8.1 JDBC3 with SSL (build 407).

I don't really know anything about the JDBC driver, but the closest
thing I see here:

http://jdbc.postgresql.org/download/

...is a link to
http://jdbc.postgresql.org/download/postgresql-8.1-407.jdbc3.jar, with
a date of 23-May-2006. So yeah, updating might be a good idea. If
you're still on PG 8.1, updating that might be a REALLY good idea,
though it probably won't do anything for you on this particular issue.

I would suggest asking on pgsql-jdbc; not too many jdbc folks reading
this list, AFAICT.

...Robert

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#4)
Re: Wrong default values of columns

Robert Haas <robertmhaas@gmail.com> writes:

On Thu, Sep 17, 2009 at 10:44 AM, Andre Rothe <phosco@gmx.de> wrote:

The problem is, that I get the default values from a metadata query
with JDBC,
so I have to parse every return value for such an annotation before I
can use them.

That sounds annoying, but it's not a PostgreSQL bug.

I think the type decoration must be getting injected on the client side,
actually. Postgres won't insert that for itself, not even if you
explicitly say "default null". Pre-8.3, if you say "default
null::varchar" then Postgres will regurgitate it that way (8.3 and up
throw the cast away even in that case). But it had to have come from
the client initially.

So pgsql-jdbc are the folks to talk to.

regards, tom lane