Possible bug in ALTER TABLE RENAME COLUMN (PostgreSQL 7.1.3)

Started by Dave Pageover 24 years ago2 messagesbugs
Jump to latest
#1Dave Page
dpage@pgadmin.org

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/

#2Bruce Momjian
bruce@momjian.us
In reply to: Dave Page (#1)
Re: Possible bug in ALTER TABLE RENAME COLUMN (PostgreSQL 7.1.3)

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?

http://archives.postgresql.org

-- 
  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