Re: BUG #6683: dropping a table with a serial column from an extension needs to explicitely drop the associated seq

From: Philippe BEAUDOIN <phb(dot)emaj(at)free(dot)fr>
To: Craig Ringer <ringerc(at)ringerc(dot)id(dot)au>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6683: dropping a table with a serial column from an extension needs to explicitely drop the associated seq
Date: 2012-06-10 10:31:18
Message-ID: 4FD47776.7050909@free.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Craig Ringer a écrit :
> On 06/10/2012 06:14 AM, Tom Lane wrote:
>> phb(dot)emaj(at)free(dot)fr writes:
>>> When a table having a seial column has been created by a CREATE
>>> EXTENSION,
>>> and when this table is later dropped from the extension, the associated
>>> sequence must be also explicitely dropped from the extension.
>> This doesn't really seem like a bug to me. The sequence is a somewhat
>> independent object.
> I disagree; it is inconsistent with the expectation established in
> normal operations that the sequence created to serve a SERIAL column
> is owned by that table/column and is dropped when it is.
>
> regress=# create table test (x serial primary key);
> NOTICE: CREATE TABLE will create implicit sequence "test_x_seq" for
> serial column "test.x"
> NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
> "test_pkey" for table "test"
> CREATE TABLE
> regress=# \d
> List of relations
> Schema | Name | Type | Owner
> --------+------------+----------+-------
> public | test | table | craig
> public | test_x_seq | sequence | craig
> (2 rows)
>
> regress=# drop table test;
> DROP TABLE
> regress=# \d
> No relations found.
>
>
>
>
> regress=# create table test (x serial primary key);
> NOTICE: CREATE TABLE will create implicit sequence "test_x_seq" for
> serial column "test.x"
> NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
> "test_pkey" for table "test"
> CREATE TABLE
> regress=# alter table test drop column x;
> ALTER TABLE
> regress=# \d
> List of relations
> Schema | Name | Type | Owner
> --------+------+-------+-------
> public | test | table | craig
> (1 row)
>
>
>
>
>
> --
> Craig Ringer
>
>
I aggree with Craig.
The current rule is not natural (at least for me, as I did the mistake
in one of my extension scripts ;-))
If this behaviour remains as is, it should be at least documented.

Finding the best desirable behaviour is probably also linked with the
discussion just started for BUG #6682.

Best regards.
Philippe BEAUDOIN.

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Craig Ringer 2012-06-10 11:25:06 Re: BUG #6685: Concurrency fault in create table
Previous Message Philippe BEAUDOIN 2012-06-10 10:30:44 [Fwd: Re: BUG #6682: pg_dump and sequence values of serial columns for extension configuration tables]