Re: Sequences/defaults and pg_dump
От | Bruce Momjian |
---|---|
Тема | Re: Sequences/defaults and pg_dump |
Дата | |
Msg-id | 200602071534.k17FYMC04892@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: Sequences/defaults and pg_dump (Nikolay Samokhvalov <samokhvalov@gmail.com>) |
Список | pgsql-general |
Nikolay Samokhvalov wrote: > On 2/7/06, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Nikolay Samokhvalov <samokhvalov@gmail.com> 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@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
В списке pgsql-general по дате отправления: