Обсуждение: BUG #14407: pg_attribute shows old column names for indexes

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

BUG #14407: pg_attribute shows old column names for indexes

От
bashtanov@imap.cc
Дата:
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz
aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDQwNwpMb2dnZWQgYnk6ICAg
ICAgICAgIEFsZXhleSBCYXNodGFub3YKRW1haWwgYWRkcmVzczogICAgICBi
YXNodGFub3ZAaW1hcC5jYwpQb3N0Z3JlU1FMIHZlcnNpb246IDkuNi4xCk9w
ZXJhdGluZyBzeXN0ZW06ICAgVWJ1bnR1IExpbnV4IDE0LjA0LjQgTFRTCkRl
c2NyaXB0aW9uOiAgICAgICAgCgpTVEVQUyBUTyBSRVBST0RVQ0U6DQpjcmVh
dGUgdGFibGUgdHQoYSBpbnQgcHJpbWFyeSBrZXkpOw0KYWx0ZXIgdGFibGUg
dHQgcmVuYW1lIGNvbHVtbiBhIHRvIGI7DQpzZWxlY3QgYXR0cmVsaWQ6OnJl
Z2NsYXNzLCBhdHRuYW1lIGZyb20gcGdfYXR0cmlidXRlIHdoZXJlIGF0dHJl
bGlkID0KYW55KCd7dHQsdHRfcGtleX0nOjpyZWdjbGFzc1tdKSBhbmQgYXR0
bnVtID4gMDsNCg0KRVhQRUNURUQ6DQogYXR0cmVsaWQgfCBhdHRuYW1lIA0K
LS0tLS0tLS0tLSstLS0tLS0tLS0NCiB0dCAgICAgICB8IGINCiB0dF9wa2V5
ICB8IGINCg0KUkVDRUlWRUQ6DQogYXR0cmVsaWQgfCBhdHRuYW1lIA0KLS0t
LS0tLS0tLSstLS0tLS0tLS0NCiB0dCAgICAgICB8IGINCiB0dF9wa2V5ICB8
IGENCg0KcmVwcm9kdWNlZCBvbiA5LjQuOSwgOS42LjEgYW5kIG1hc3Rlcg0K
DQpSZWdhcmRzLA0KICBBbGV4ZXkKCg==

Re: BUG #14407: pg_attribute shows old column names for indexes

От
Tom Lane
Дата:
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