Possible bug in ALTER TABLE RENAME COLUMN (PostgreSQL 7.1.3)
Hi,
During testing of new revision control code in pgAdmin II, I've found that
renaming an indexed column in a table does not automatically update the
index column name in pg_attribute. pg_get_indexdef does return the correct
definition however:
helpdesk=# CREATE TABLE sheep (cow text);
CREATE
helpdesk=# CREATE INDEX goat ON sheep (cow);
CREATE
helpdesk=# \d goat
Index "goat"
Attribute | Type
-----------+------
cow | text
btree
(END)
helpdesk=# ALTER TABLE sheep RENAME cow TO chicken;
ALTER
helpdesk=# \d sheep
Table "sheep"
Attribute | Type | Modifier
-----------+------+----------
chicken | text |
Index: goat
(END)
helpdesk=# \d goat
Index "goat"
Attribute | Type
-----------+------
cow | text
btree
(END)
helpdesk=# SELECT pg_get_indexdef((SELECT oid FROM pg_class WHERE relname =
'goat'));
pg_get_indexdef
-----------------------------------------------------------
CREATE INDEX goat ON sheep USING btree (chicken text_ops)
(1 row)
(END)
(Please CC any replies as I'm not on this list)
Regards, Dave.
--
Dave Page (dpage@postgresql.org)
http://pgadmin.postgresql.org/
This appears to be fixed:
test=> CREATE TABLE sheep (cow text);
CREATE
test=> CREATE INDEX goat ON sheep (cow);
CREATE
test=> ALTER TABLE sheep RENAME cow TO chicken;
ALTER
test=> \d sheep
Table "sheep"
Column | Type | Modifiers
---------+------+-----------
chicken | text |
Indexes: goat
test=> \d goat
Index "goat"
Column | Type
---------+------
chicken | text
btree
---------------------------------------------------------------------------
Hi,
During testing of new revision control code in pgAdmin II, I've found that
renaming an indexed column in a table does not automatically update the
index column name in pg_attribute. pg_get_indexdef does return the correct
definition however:helpdesk=# CREATE TABLE sheep (cow text);
CREATE
helpdesk=# CREATE INDEX goat ON sheep (cow);
CREATE
helpdesk=# \d goat
Index "goat"
Attribute | Type
-----------+------
cow | text
btree(END) helpdesk=# ALTER TABLE sheep RENAME cow TO chicken; ALTER helpdesk=# \d sheep Table "sheep" Attribute | Type | Modifier -----------+------+---------- chicken | text | Index: goat(END)
helpdesk=# \d goat
Index "goat"
Attribute | Type
-----------+------
cow | text
btree(END)
helpdesk=# SELECT pg_get_indexdef((SELECT oid FROM pg_class WHERE relname =
'goat'));
pg_get_indexdef
-----------------------------------------------------------
CREATE INDEX goat ON sheep USING btree (chicken text_ops)
(1 row)(END)
(Please CC any replies as I'm not on this list)
Regards, Dave.
--
Dave Page (dpage@postgresql.org)
http://pgadmin.postgresql.org/---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026