Nikolay Samokhvalov wrote: > On 2/7/06, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > > Nikolay Samokhvalov <samokhvalov@xxxxxxxxx> writes: > > > testseq=# CREATE TABLE test(id SERIAL, data TEXT); > > > NOTICE: CREATE TABLE will create implicit sequence "test_id_seq" for > > > serial column "test.id" > > > CREATE TABLE > > > *** > > > ALTER TABLE test ALTER COLUMN id SET DEFAULT nextval('test_id_seq') * 10; > > > > The correct solution to this is to forbid ALTER COLUMN SET DEFAULT on > > a serial column, but we haven't gotten around to enforcing that yet. > That's wrong! > Forget about SERIAL. I have INTEGER column with some expression as > DEFAULT in it. I use sequence in that expression and want this to be > dumped correctly. > The bug doesn't concerns SERIALs, in concerns general usage of sequences. Uh, I can't reproduce the failure: test=> CREATE SEQUENCE xx; CREATE SEQUENCE test=> CREATE TABLE test5(id integer DEFAULT nextval('xx'), data TEXT); CREATE TABLE test=> ALTER TABLE test5 ALTER COLUMN id SET DEFAULT nextval('test_id_seq') * 10; ALTER TABLE pg_dump has: CREATE TABLE test2 ( id integer DEFAULT (nextval('test_id_seq'::regclass) * 10), data text ); -- Bruce Momjian | http://candle.pha.pa.us pgman@xxxxxxxxxxxxxxxx | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073