Обсуждение: BUG #14407: pg_attribute shows old column names for indexes
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDQwNwpMb2dnZWQgYnk6ICAg ICAgICAgIEFsZXhleSBCYXNodGFub3YKRW1haWwgYWRkcmVzczogICAgICBi YXNodGFub3ZAaW1hcC5jYwpQb3N0Z3JlU1FMIHZlcnNpb246IDkuNi4xCk9w ZXJhdGluZyBzeXN0ZW06ICAgVWJ1bnR1IExpbnV4IDE0LjA0LjQgTFRTCkRl c2NyaXB0aW9uOiAgICAgICAgCgpTVEVQUyBUTyBSRVBST0RVQ0U6DQpjcmVh dGUgdGFibGUgdHQoYSBpbnQgcHJpbWFyeSBrZXkpOw0KYWx0ZXIgdGFibGUg dHQgcmVuYW1lIGNvbHVtbiBhIHRvIGI7DQpzZWxlY3QgYXR0cmVsaWQ6OnJl Z2NsYXNzLCBhdHRuYW1lIGZyb20gcGdfYXR0cmlidXRlIHdoZXJlIGF0dHJl bGlkID0KYW55KCd7dHQsdHRfcGtleX0nOjpyZWdjbGFzc1tdKSBhbmQgYXR0 bnVtID4gMDsNCg0KRVhQRUNURUQ6DQogYXR0cmVsaWQgfCBhdHRuYW1lIA0K LS0tLS0tLS0tLSstLS0tLS0tLS0NCiB0dCAgICAgICB8IGINCiB0dF9wa2V5 ICB8IGINCg0KUkVDRUlWRUQ6DQogYXR0cmVsaWQgfCBhdHRuYW1lIA0KLS0t LS0tLS0tLSstLS0tLS0tLS0NCiB0dCAgICAgICB8IGINCiB0dF9wa2V5ICB8 IGENCg0KcmVwcm9kdWNlZCBvbiA5LjQuOSwgOS42LjEgYW5kIG1hc3Rlcg0K DQpSZWdhcmRzLA0KICBBbGV4ZXkKCg==
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