Le 6/07/2010 16:22, Tom Lane a écrit :
Arnaud Lesauvage<arnaud.listes@xxxxxxxxx> writes:
After some research, we found in psqlODBC's log that before the restore
psqlODBC was getting the sequence's nextval with a schema qualified
call, and after the restore the call was not schema qualified.
I checked in pg_attrdef before and after the dump/restore, and indeed
the "default nextval()" on this problematic table loses it's schema
qualification in the process.
This is a pretty inadequate description of your problem. Let's see the
exact SQL you are dealing with.
What is the exact information you want me to give ?
Everything I checked came from my analysis of psqlODBC's log.
I saw that in the first case (before the restore) a schema-qualified
nextval() was issued, and after the restore it was not schema qualified
anymore.
I looked further up in the log to see where the sequence name came from,
and it seemed that it came from pg_attrdef.adsrc.
I checked the value of this field in both databases, and it was different.
Maybe psqlODBC does the wrong thing when taking the sequence name from
this field, but my guess was that the problem came from here.
Note that if the argument of nextval is a plain regclass constant, like
nextval('seq'::regclass)
then the constant is in fact a reference to a specific sequence.
Whether it's displayed with a schema name depends on whether that
sequence is visible in your search_path.
Displayed in pg_attrdef.adsrc ? It is not in the search_path, and it is
schema qualified before the dump/restore and not after.
As you have understood, I am not very savvy about postgresql's
internals, but from what you say my guess is that the problem is int the
psqlODBC is getting the default value of the sequence ?
Regards,
Arnaud Lesauvage
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general