(2010/03/03 14:26), Robert Haas wrote: > 2010/3/2 KaiGai Kohei<kai...@ak.jp.nec.com>: >> Is it an expected behavior? >> >> postgres=> CREATE SEQUENCE s; >> CREATE SEQUENCE >> postgres=> ALTER TABLE s RENAME sequence_name TO abcd; >> ALTER TABLE >> >> postgres=> CREATE TABLE t (a int primary key, b text); >> NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t_pkey" >> for table "t" >> CREATE TABLE >> postgres=> ALTER TABLE t_pkey RENAME a TO xyz; >> ALTER TABLE >> >> The documentation says: >> http://developer.postgresql.org/pgdocs/postgres/sql-altertable.html >> >> : >> RENAME >> The RENAME forms change the name of a table (or an index, sequence, or >> view) or >> the name of an individual column in a table. There is no effect on the >> stored data. >> >> It seems to me the renameatt() should check relkind of the specified >> relation, and >> raise an error if relkind != RELKIND_RELATION. > > Are we talking about renameatt() or RenameRelation()? Letting > RenameRelation() rename whatever seems fairly harmless; renameatt(), > on the other hand, should probably refuse to allow this: > > CREATE SEQUENCE foo; > ALTER TABLE foo RENAME COLUMN is_cycled TO bob; > > ...because that's just weird. Tables, indexes, and views make sense, > but the attributes of a sequence should be nailed down I think; > they're basically system properties.
I'm talking about renameatt(), not RenameRelation(). If our perspective is these are a type of system properties, we should be able to reference these attributes with same name, so it is not harmless to allow renaming these attributes. I also agree that it makes sense to allow renaming attributes of tables and views. But I don't know whether it makes sense to allow it on indexs, like sequence and toast relations. Thanks, -- KaiGai Kohei <kai...@ak.jp.nec.com> -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers