BUG #2336: will not drop implicitly created sequence

Started by Chris Mairabout 20 years ago2 messagesbugs
Jump to latest
#1Chris Mair
chris@1006.org

The following bug has been logged online:

Bug reference: 2336
Logged by: Chris Mair
Email address: chris@1006.org
PostgreSQL version: 8.1.3
Operating system: MacOS X 10.3.9
Description: will not drop implicitly created sequence
Details:

Ok, so this is probably not a bug at all - just slightly unexpected
behaviour.

This piece of SQL:
---------------------------------------------------
create table test2 (id serial, txt varchar);
-- (will create implicit sequence "test2_id_seq")
alter table test2 alter id set default 123;
drop sequence test2_id_seq;
---------------------------------------------------

would say:
---------------------------------------------------
ERROR: 2BP01: cannot drop sequence test2_id_seq because table test2 column
id requires it
HINT: You may drop table test2 column id instead.
LOCATION: recursiveDeletion, dependency.c:472
---------------------------------------------------

as if test2.id would still use the sequence.

Contrast this with the same thing done with an explicitly declared
sequence:
---------------------------------------------------
create sequence test1_id_seq;
create table test1 (id int not null default nextval('test1_id_seq'), txt
varchar);
alter table test1 alter id set default 123;
drop sequence test1_id_seq;
---------------------------------------------------

which will just work fine.

#2Bruce Momjian
bruce@momjian.us
In reply to: Chris Mair (#1)
Re: BUG #2336: will not drop implicitly created sequence

TODO has:

* %Disallow changing default expression of a SERIAL column

so we know it is a bug.

---------------------------------------------------------------------------

Chris Mair wrote:

The following bug has been logged online:

Bug reference: 2336
Logged by: Chris Mair
Email address: chris@1006.org
PostgreSQL version: 8.1.3
Operating system: MacOS X 10.3.9
Description: will not drop implicitly created sequence
Details:

Ok, so this is probably not a bug at all - just slightly unexpected
behaviour.

This piece of SQL:
---------------------------------------------------
create table test2 (id serial, txt varchar);
-- (will create implicit sequence "test2_id_seq")
alter table test2 alter id set default 123;
drop sequence test2_id_seq;
---------------------------------------------------

would say:
---------------------------------------------------
ERROR: 2BP01: cannot drop sequence test2_id_seq because table test2 column
id requires it
HINT: You may drop table test2 column id instead.
LOCATION: recursiveDeletion, dependency.c:472
---------------------------------------------------

as if test2.id would still use the sequence.

Contrast this with the same thing done with an explicitly declared
sequence:
---------------------------------------------------
create sequence test1_id_seq;
create table test1 (id int not null default nextval('test1_id_seq'), txt
varchar);
alter table test1 alter id set default 123;
drop sequence test1_id_seq;
---------------------------------------------------

which will just work fine.

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

--
Bruce Momjian http://candle.pha.pa.us
SRA OSS, Inc. http://www.sraoss.com

+ If your life is a hard drive, Christ can be your backup. +