Обсуждение: Renaming tables and their indexes simultaneously
I have a stored procedure that renames a table as part of a partitioning scheme, then re-creates it.
Up until recently (I'm not sure what changed), renaming the table would cause the pkey index/constraint, as well as all other indexes, to be renamed according to the new table name.
However, they now do not rename, and cause collisions when the new table is created.
I would prefer not having to drop and re-create the primary key index, as it takes quite a while to drop and re-create an index that large.
How can I cause Postgres to rename the table's attached indexes when I rename the table, and what might have caused it to stop doing so recently?
We are on Postgres 9.1, but we did not recently upgrade...
Thanks.
--
Moshe Jacobson
Nead Werx, Inc. | Senior Systems Engineer
Nead Werx, Inc. | Senior Systems Engineer
2323 Cumberland Parkway, Suite 201 | Atlanta, GA 30339
moshe@neadwerx.com | www.neadwerx.com
moshe@neadwerx.com | www.neadwerx.com
Moshe Jacobson <moshe@neadwerx.com> writes: > I have a stored procedure that renames a table as part of a partitioning > scheme, then re-creates it. > Up until recently (I'm not sure what changed), renaming the table would > cause the pkey index/constraint, as well as all other indexes, to be > renamed according to the new table name. Really? AFAICT, we've never done that --- at least not as far back as 7.2, which is as far as I felt like checking. There did use to be some logic in there that tried to make index column names track their underlying columns when you renamed a column. But we gave up on that in 9.0, mainly because of index-expression cases. regards, tom lane