postgresql/src/backend/access
Tom Lane b9b8831ad6 Create a "relation mapping" infrastructure to support changing the relfilenodes
of shared or nailed system catalogs.  This has two key benefits:

* The new CLUSTER-based VACUUM FULL can be applied safely to all catalogs.

* We no longer have to use an unsafe reindex-in-place approach for reindexing
  shared catalogs.

CLUSTER on nailed catalogs now works too, although I left it disabled on
shared catalogs because the resulting pg_index.indisclustered update would
only be visible in one database.

Since reindexing shared system catalogs is now fully transactional and
crash-safe, the former special cases in REINDEX behavior have been removed;
shared catalogs are treated the same as non-shared.

This commit does not do anything about the recently-discussed problem of
deadlocks between VACUUM FULL/CLUSTER on a system catalog and other
concurrent queries; will address that in a separate patch.  As a stopgap,
parallel_schedule has been tweaked to run vacuum.sql by itself, to avoid
such failures during the regression tests.
2010-02-07 20:48:13 +00:00
..
common Replace ALTER TABLE ... SET STATISTICS DISTINCT with a more general mechanism. 2010-01-22 16:40:19 +00:00
gin Fix incorrect comparison of scan key in GIN. Per report from 2010-01-18 11:50:43 +00:00
gist Add point_ops opclass for GiST. 2010-01-14 16:31:09 +00:00
hash Remove all the special-case code for INT64_IS_BUSTED, per decision that 2010-01-07 04:53:35 +00:00
heap Restructure CLUSTER/newstyle VACUUM FULL/ALTER TABLE support so that swapping 2010-02-04 00:09:14 +00:00
index Create a "relation mapping" infrastructure to support changing the relfilenodes 2010-02-07 20:48:13 +00:00
nbtree Revoke augmentation of WAL records for btree delete, per discussion. 2010-02-01 13:40:28 +00:00
transam Create a "relation mapping" infrastructure to support changing the relfilenodes 2010-02-07 20:48:13 +00:00
Makefile Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00