Обсуждение: ALTER TABLE RENAME column

Поиск
Список
Период
Сортировка

ALTER TABLE RENAME column

От
Jim Nasby
Дата:
Any reason not to support renaming columns? Can this be added to TODO?
--
Jim Nasby                                            jim@nasby.net
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)



Вложения

Re: ALTER TABLE RENAME column

От
Tom Lane
Дата:
Jim Nasby <decibel@decibel.org> writes:
> Any reason not to support renaming columns? Can this be added to TODO?

Uh, we did that years ago.
        regards, tom lane


Re: ALTER TABLE RENAME column

От
Peter Eisentraut
Дата:
Jim Nasby wrote:
> Any reason not to support renaming columns? Can this be added to
> TODO?

Upgrade to Postgres95.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


Re: ALTER TABLE RENAME column

От
Richard Huxton
Дата:
Peter Eisentraut wrote:
> Jim Nasby wrote:
>> Any reason not to support renaming columns? Can this be added to
>> TODO?
> 
> Upgrade to Postgres95.

Hey, is Jim running MySQL 5?

--   Richard Huxton  Archonet Ltd


Re: ALTER TABLE RENAME column

От
"Jonah H. Harris"
Дата:
On 11/16/06, Jim Nasby <decibel@decibel.org> wrote:
> Any reason not to support renaming columns? Can this be added to TODO?

ALTER TABLE yo_table RENAME COLUMN yo_column TO yo_new_column;

?

-- 
Jonah H. Harris, Software Architect | phone: 732.331.1300
EnterpriseDB Corporation            | fax: 732.331.1301
33 Wood Ave S, 2nd Floor            | jharris@enterprisedb.com
Iselin, New Jersey 08830            | http://www.enterprisedb.com/


Re: ALTER TABLE RENAME column

От
Andrew Dunstan
Дата:
Jonah H. Harris wrote:
> On 11/16/06, Jim Nasby <decibel@decibel.org> wrote:
>> Any reason not to support renaming columns? Can this be added to TODO?
>
> ALTER TABLE yo_table RENAME COLUMN yo_column TO yo_new_column;
>


Maybe Jim actually wants a reason to remove support for this ... :-)

cheers

andrew


Re: ALTER TABLE RENAME column

От
"Mario Weilguni"
Дата:
> Uh, we did that years ago.

Really?
+     o Add ALTER TABLE RENAME COLUMN (should rename appropriate sequences and constraints)

Sounds like this is not done, at least not renaming sequencens and constraints, or am I wrong here?

RegardMario Weilguni

-----Ursprüngliche Nachricht-----
Von: pgsql-hackers-owner@postgresql.org [mailto:pgsql-hackers-owner@postgresql.org] Im Auftrag von Tom Lane
Gesendet: Freitag, 17. November 2006 07:05
An: Jim Nasby
Cc: PostgreSQL Hackers
Betreff: Re: [HACKERS] ALTER TABLE RENAME column

Jim Nasby <decibel@decibel.org> writes:
> Any reason not to support renaming columns? Can this be added to TODO?

Uh, we did that years ago.
        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings


Re: ALTER TABLE RENAME column

От
"Jonah H. Harris"
Дата:
On 11/17/06, Mario Weilguni <mario.weilguni@icomedias.com> wrote:
> Sounds like this is not done, at least not renaming sequencens and constraints, or am I wrong here?

To rename a sequence or a table:

ALTER TABLE yo_table RENAME TO yo_new_table;
ALTER TABLE yo_sequence RENAME TO yo_new_sequence;

Or am I mistaken?

-- 
Jonah H. Harris, Software Architect | phone: 732.331.1300
EnterpriseDB Corporation            | fax: 732.331.1301
33 Wood Ave S, 2nd Floor            | jharris@enterprisedb.com
Iselin, New Jersey 08830            | http://www.enterprisedb.com/


Re: ALTER TABLE RENAME column

От
"Jonah H. Harris"
Дата:
On 11/17/06, Mario Weilguni <mario.weilguni@icomedias.com> wrote:
> +     o Add ALTER TABLE RENAME COLUMN (should rename appropriate sequences and constraints)

Actually, I don't believe it cascades the rename automagically... if
that's what you're asking.

-- 
Jonah H. Harris, Software Architect | phone: 732.331.1300
EnterpriseDB Corporation            | fax: 732.331.1301
33 Wood Ave S, 2nd Floor            | jharris@enterprisedb.com
Iselin, New Jersey 08830            | http://www.enterprisedb.com/


Re: ALTER TABLE RENAME column

От
"Mario Weilguni"
Дата:
Right, but I think jim means automatical renames of sequences, and especially something like this:
db=# CREATE TABLE foo (bar serial);
NOTICE:  CREATE TABLE will create implicit sequence "foo_bar_seq" for serial column "foo.bar"
CREATE TABLE
db=# ALTER TABLE foo rename bar to baf;
ALTER TABLE
db=# \d foo                         Table "public.foo"Column |  Type   |                     Modifiers
--------+---------+---------------------------------------------------baf    | integer | not null default
nextval('foo_bar_seq'::regclass)

The sequence still is named "foo_bar_seq".

IMO this should do:
Alter sequence foo_bar_seq rename to foo_baf_seq;
Alter table foo alter baf set default nextval('foo_baf_seq')



-----Ursprüngliche Nachricht-----
Von: Jonah H. Harris [mailto:jonah.harris@gmail.com]
Gesendet: Freitag, 17. November 2006 16:27
An: Mario Weilguni
Cc: Tom Lane; Jim Nasby; PostgreSQL Hackers
Betreff: Re: [HACKERS] ALTER TABLE RENAME column

On 11/17/06, Mario Weilguni <mario.weilguni@icomedias.com> wrote:
> Sounds like this is not done, at least not renaming sequencens and constraints, or am I wrong here?

To rename a sequence or a table:

ALTER TABLE yo_table RENAME TO yo_new_table; ALTER TABLE yo_sequence RENAME TO yo_new_sequence;

Or am I mistaken?

--
Jonah H. Harris, Software Architect | phone: 732.331.1300
EnterpriseDB Corporation            | fax: 732.331.1301
33 Wood Ave S, 2nd Floor            | jharris@enterprisedb.com
Iselin, New Jersey 08830            | http://www.enterprisedb.com/


Re: ALTER TABLE RENAME column

От
Tom Lane
Дата:
"Mario Weilguni" <mario.weilguni@icomedias.com> writes:
> IMO this should do:
> Alter sequence foo_bar_seq rename to foo_baf_seq;
> Alter table foo alter baf set default nextval('foo_baf_seq')

No, it should not, because that risks breaking other references to the
sequence (eg, in user-written functions).  If the user is feeling that
he wants consistency, he can rename the sequence himself and take
responsibility for any side-effects on his code.
        regards, tom lane


Re: ALTER TABLE RENAME column

От
"Jonah H. Harris"
Дата:
On 11/17/06, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> No, it should not, because that risks breaking other references to the
> sequence (eg, in user-written functions).  If the user is feeling that
> he wants consistency, he can rename the sequence himself and take
> responsibility for any side-effects on his code.

I concur.

-- 
Jonah H. Harris, Software Architect | phone: 732.331.1300
EnterpriseDB Corporation            | fax: 732.331.1301
33 Wood Ave S, 2nd Floor            | jharris@enterprisedb.com
Iselin, New Jersey 08830            | http://www.enterprisedb.com/


Re: ALTER TABLE RENAME column

От
Jim Nasby
Дата:
On Nov 17, 2006, at 9:47 AM, Jonah H. Harris wrote:

> On 11/16/06, Jim Nasby <decibel@decibel.org> wrote:
>> Any reason not to support renaming columns? Can this be added to  
>> TODO?
>
> ALTER TABLE yo_table RENAME COLUMN yo_column TO yo_new_column;

Oooops... now I see where it's listed in \h. I knew I must have been  
missing something...
--
Jim Nasby                                            jim@nasby.net
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)