Re: renameatt() can rename attribute of index, sequence, ...

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: KaiGai Kohei <kaigai(at)ak(dot)jp(dot)nec(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: renameatt() can rename attribute of index, sequence, ...
Date: 2010-03-04 00:16:53
Message-ID: 603c8f071003031616t4b561807y45825304a7e8c5f2@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2010/3/3 KaiGai Kohei <kaigai(at)ak(dot)jp(dot)nec(dot)com>:
> (2010/03/03 22:42), Robert Haas wrote:
>> 2010/3/3 KaiGai Kohei<kaigai(at)ak(dot)jp(dot)nec(dot)com>:
>>> (2010/03/03 14:26), Robert Haas wrote:
>>>> 2010/3/2 KaiGai Kohei<kaigai(at)ak(dot)jp(dot)nec(dot)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().
>>
>> OK.  Your original example was misleading because you had renameatt()
>> in the subject line but the actual SQL commands were renaming a whole
>> relation (which is a reasonable thing to do).
>>
>>> 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.
>>
>> I would think not.
>
> OK, the attached patch forbid renameatt() on relations expect for tables
> and views.

OK, I will review it.

...Robert

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2010-03-04 00:41:28 Re: Getting to 9.0 beta
Previous Message Robert Haas 2010-03-04 00:15:17 Re: Getting to 9.0 beta