The following bug has been logged online:
Bug reference: 3224
Logged by: Gabriele Bartolini
Email address: g.bartolini@comune.prato.it
PostgreSQL version: 8.2.3
Operating system: GNU/Linux ( 2.6.9-42.0.2.ELsmp )
Description: Dump: missing schema name for sequence in a "DEFAULT
nextval" specification
Details:
Here is the example. I have a schema called 'dimensions' where I have a
hosts_2006_seq sequence and a hosts_2006 table, defined as follows:
CREATE SCHEMA dimensions;
CREATE SEQUENCE dimensions.hosts_2006_seq;
CREATE TABLE dimensions.hosts_2006
(
id_host integer NOT NULL DEFAULT
nextval('dimensions.hosts_2006_seq'::regclass),
host character varying(255) NOT NULL DEFAULT ''::character varying,
CONSTRAINT hosts_2006_pkey PRIMARY KEY (id_host)
);
As you can see I want the 'nextval' function to get the sequence value from
the proper table in the 'dimensions' schema, and that works fine.
However, when I issue a pg_dump or pg_dumpall command, here is what I get:
SET search_path = dimensions, pg_catalog;
CREATE SEQUENCE hosts_2006_seq;
CREATE TABLE hosts_2006 (
id_host integer DEFAULT nextval('hosts_2006_seq'::regclass) NOT NULL,
host character varying(255) DEFAULT ''::character varying NOT NULL,
);
This causes the 'nextval()' to go and look for the proper sequence according
to the search path and not in an absolute way.
I don't know whether this can be considered a bug, but it definitely created
a few problems on my scenario.
Thank you.
Ciao,
Gabriele