In an old thread <http://archives.postgresql.org/pgsql-admin/2004-01/ msg00271.php>, Tom Lane suggested that it would be "unreasonable" to use pg_index to reconstruct (expressional) indexes (in 7.4). The suggested alternative was to use pg_get_indexdef().

I administer a postgres 8.0.x database with thousands of inherited tables, each with what is supposed to be a consistently maintained set of indexes. As the application programmers change (and have changed) the DDL specification over time as it affects the creation of new tables, however, it is the case that some indexes have gotten out of sync or duplicated (in terms of the specified columns).

For the purposes of developing an index administration toolkit whose intent is to discover and remove duplicate indexes and to add missing indexes to pre-existing tables, it seems like it's easier to write an index verification process based on the contents of pg_index (e.g., in order to compare the columns referenced by indexes on a table to determine whether any of them seem to be duplicative) than to have to parse the output of pg_get_indexdef(). Am I off base in this thinking?

P.S. Regardless of the wisdom of using pg_index for such purposes, the OP in the old thread raised what I think is a good question: why are techniques for accessing int2vector nowhere documented if the type itself makes its way into very user-visible documentation and catalogs/views?

--
Thomas F. O'Connell
Database Architecture and Programming
Co-Founder
Sitening, LLC

http://www.sitening.com/
110 30th Avenue North, Suite 6
Nashville, TN 37203-6320
615-469-5150
615-469-5151 (fax)


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to