BUG #14407: pg_attribute shows old column names for indexes
The following bug has been logged on the website:
Bug reference: 14407
Logged by: Alexey Bashtanov
Email address: bashtanov@imap.cc
PostgreSQL version: 9.6.1
Operating system: Ubuntu Linux 14.04.4 LTS
Description:
STEPS TO REPRODUCE:
create table tt(a int primary key);
alter table tt rename column a to b;
select attrelid::regclass, attname from pg_attribute where attrelid =
any('{tt,tt_pkey}'::regclass[]) and attnum > 0;
EXPECTED:
attrelid | attname
----------+---------
tt | b
tt_pkey | b
RECEIVED:
attrelid | attname
----------+---------
tt | b
tt_pkey | a
reproduced on 9.4.9, 9.6.1 and master
Regards,
Alexey
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
bashtanov@imap.cc writes:
create table tt(a int primary key);
alter table tt rename column a to b;
select attrelid::regclass, attname from pg_attribute where attrelid =
any('{tt,tt_pkey}'::regclass[]) and attnum > 0;
This is not a bug; we don't attempt to rename index columns when changing
the name of a heap column. It would create collision hazards and gain
little.
If you want to see what the columns of an index actually are, I suggest
psql's \d command. In this example it produces
regression=# \d tt_pkey
Index "public.tt_pkey"
Column | Type | Definition
--------+---------+------------
a | integer | b
primary key, btree, for table "public.tt"
regards, tom lane
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs