TODO has:

        o Have ALTER TABLE rename SERIAL sequences

However, I didn't realize the seriousness of the problem.

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

Mirek Hankus wrote:
> 
> Postgresql 7.3.4 on Linux.
> 
> Problem is that when you create a table with serial type, it creates
> sequence with coresponding name. Then you can grant some rights to
> it (table and sequence), and after that change table name. From now on
> you will not be able to restore such database, because name of sequence 
> is not changed.
> pg_dump dumps databese without CREATE SEQUENCE statements(it marks field 
> as SERIAL so it is
> automatically created)  but with
> 
> GRANT xxx ON sequence_name TO someone
> 
> where sequence_name corresponds to first name of the table. So when you
> try to restore such backup pg_restore will fail. It is not a serious bug
> (it can be fixed during restoring), but some users may have problem with 
> it.
> 
> 
> Here is a sample wich illustrates this bug:
> 
> 
> aaa=# CREATE TABLE test1 (a SERIAL);
> NOTICE:  CREATE TABLE will create implicit sequence 'test1_a_seq' for 
> SERIAL column 'test1.a'
> CREATE TABLE
> aaa=# GRANT ALL ON test1 TO PUBLIC;
> GRANT
> aaa=# GRANT ALL ON test1_a_seq TO PUBLIC;
> GRANT
> aaa=# ALTER TABLE test1 RENAME to test2;
> ALTER TABLE
> aaa=#
> 
> 
> 
> And when you dump such database and try to restore it you will see
> 
> SET
> NOTICE:  CREATE TABLE will create implicit sequence 'test2_a_seq' for 
> SERIAL column 'test2.a'
> CREATE TABLE
> REVOKE
> GRANT
> ERROR:  Relation "test1_a_seq" does not exist
> ERROR:  Relation "test1_a_seq" does not exist
> ERROR:  Relation "test1_a_seq" does not exist
> 
> 
> Best regards
>     Mirek Hankus
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to