On Thu, Jan 26, 2012 at 11:29 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> However, I think we ought to handle
>> renaming a column symmetrically to adding one.
>
> Yeah, I was thinking the same.
>
>> So here's a revised version of your patch that does that.
>
> This looks reasonable to me, except that possibly the new error message
> text could do with a bit more thought. It seems randomly unlike the
> normal message, and I also have a bit of logical difficulty with the
> wording equating a "column" with a "column name". The wording that
> is in use in the existing CREATE TABLE case is
>
> column name \"%s\" conflicts with a system column name
>
> We could do worse than to use that verbatim, so as to avoid introducing
> a new translatable string. Another possibility is
>
> column \"%s\" of relation \"%s\" already exists as a system column
>
> Or we could keep the primary errmsg the same as it is for a normal
> column and instead add a DETAIL explaining that this is a system column.
I intended for the message to match the CREATE TABLE case. I think it
does, except I see now that Vik's patch left out the word "name" where
the original string has it. So I'll vote in favor of your first
option, above, since that's what I intended anyway.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company