Hello,
Ran into this little gem with a customer today:
This works:
create table foo (foo int not null, bar text); create sequence foo_seq; alter table foo alter column foo set default nextval('foo_seq');
pg_dump will correctly dump the table:
CREATE TABLE foo ( foo integer DEFAULT nextval('foo_seq'::text) NOT NULL, bar text );
-- -- TOC entry 3 (OID 107565218) -- Name: foo_seq; Type: SEQUENCE; Schema: public; Owner: postgres --
CREATE SEQUENCE foo_seq START 1 INCREMENT 1 MAXVALUE 9223372036854775807 MINVALUE 1 CACHE 1;
However if you do the following:
create table foo (foo serial not null, bar text); create sequence foo_seq; alter table foo alter column foo set default nextval('foo_seq');
pg_dump will give you the following:
CREATE TABLE foo ( foo serial NOT NULL, bar text );
-- -- TOC entry 3 (OID 107566148) -- Name: foo_seq; Type: SEQUENCE; Schema: public; Owner: postgres --
CREATE SEQUENCE foo_seq START 1 INCREMENT 1 MAXVALUE 9223372036854775807 MINVALUE 1 CACHE 1;
Which is wrong because we want the column foo to use a default of foo_seq not foo_foo_seq.
Sincerely,
Joshua D. Drake
-- Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC Postgresql support, programming shared hosting and dedicated hosting. +1-503-667-4564 - [EMAIL PROTECTED] - http://www.commandprompt.com PostgreSQL Replicator -- production quality replication for PostgreSQL
begin:vcard fn:Joshua Drake n:Drake;Joshua org:Command Prompt, Inc. adr:;;PO Box 215 ;Cascade Locks;OR;97014;US email;internet:[EMAIL PROTECTED] title:Consultant tel;work:503-667-4564 tel;fax:503-210-0334 x-mozilla-html:FALSE url:http://www.commandprompt.com version:2.1 end:vcard
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match