Re: [GENERAL] 'default nextval()' loses schema-qualification in dump ? - Mailing list pgsql-odbc

From Hiroshi Inoue
Subject Re: [GENERAL] 'default nextval()' loses schema-qualification in dump ?
Date
Msg-id 4C37207A.9070806@tpf.co.jp
Whole thread Raw
In response to Re: [GENERAL] 'default nextval()' loses schema-qualification in dump ?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-odbc
Tom Lane wrote:
> Richard Huxton <dev@archonet.com> writes:
>> If you start psql with the "-E" option and do \d myschema.mytable you'll
>> be able to see how it gets the sequence-name. About half-way down the
>> list of queries it runs you'll see a reference to pg_get_expr(...) -
>> that turns an internal representation into a useful usable one.
>
>> I don't know why psqlODBC isn't using that. The function has been around
>> for a while. Hmm - it's present back in 7.4 although it's not used in \d
>> - that does reference adsrc directly.
>
>> Just grabbed the source download for the latest version and it still
>> looks like it's using adsrc (I just searched for that and pg_get_expr).
>> There should probably be a change in info.c around line 2091 to add a
>> check for a recent version of PG (8+) and use pg_get_expr. Check on the
>> odbc mailing-list - there may be an updated version available for you to
>> test.
>
> Seems like psqlODBC shouldn't be fetching the default value at all, or
> at least should not be trying to turn around and pass it back to the
> server (if that's what's really happening).  It would be far easier and
> safer to omit the target column from the INSERT statement, or write
> DEFAULT if that's inconvenient.

The driver calls currval() not nextval() so as to get the latest
 inserted serial value. Though we can call lastval() for the purpose,
it causes a trouble unfortunately
(http://archives.postgresql.org/pgsql-odbc/2007-05/msg00016.php)
.

regards,
Hiroshi Inoue

> Even if you collect the correct
> expression by using pg_get_expr(), what if someone ALTERs the default
> while you're connected?
>
> I'm suspicious that this coding technique is a hangover from back when
> you couldn't write "insert into foo values(default, default)", which is
> to say PG 7.2 or before.
>
>             regards, tom lane
>


pgsql-odbc by date:

Previous
From: Arnaud Lesauvage
Date:
Subject: Re: 'default nextval()' loses schema-qualification in dump ?
Next
From: Ravi Katkar
Date:
Subject: Unable to create a Postgre Datasource from windows With Database installed in RHEL 5.3