I've just stumbled across this, which appears to be a regression from
8.4 that is present in 9.0 and master:
andrew=# create table foo (x int primary key); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"foo_pkey"for table "foo" CREATE TABLE andrew=# alter table foo rename x to y; ALTER TABLE andrew=# select
attnamefrom pg_attribute where attrelid = 'foo_pkey'::regclass; attname --------- x (1 row)
In 8.4 the index attribute is renamed correctly.
This only came to light because it caused a londiste failure, making
londiste think that there wasn't a key field. Arguably londiste should
be using pg_index.indkey, but this should still work right.
cheers
andrew