Received: from maia.hub.org (unknown [200.46.208.211]) by mail.postgresql.org (Postfix) with ESMTP id 4658263281B for ; Mon, 8 Feb 2010 00:34:07 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.208.211]) (amavisd-maia, port 10024) with ESMTP id 65365-04 for ; Mon, 8 Feb 2010 04:33:38 +0000 (UTC) Received: from cvs.postgresql.org (cvs.postgresql.org [217.196.146.206]) by mail.postgresql.org (Postfix) with ESMTP id 1C6F8632287 for ; Mon, 8 Feb 2010 00:33:56 -0400 (AST) Received: by cvs.postgresql.org (Postfix, from userid 1007) id 412637541B9; Mon, 8 Feb 2010 04:33:55 +0000 (UTC) MIME-Version: 1.0 To: pgsql-committers@postgresql.org Subject: pgsql: Remove old-style VACUUM FULL (which was known for a little while X-Mailer: activitymail 1.24, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain Message-Id: <20100208043355.412637541B9@cvs.postgresql.org> Date: Mon, 8 Feb 2010 04:33:55 +0000 (UTC) From: tgl@postgresql.org (Tom Lane) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-0.912 tagged_above=-10 required=5 tests=AWL=-0.913, BAYES_50=0.001 X-Spam-Level: X-Archive-Number: 201002/98 X-Sequence-Number: 39701 Log Message: ----------- Remove old-style VACUUM FULL (which was known for a little while as VACUUM FULL INPLACE), along with a boatload of subsidiary code and complexity. Per discussion, the use case for this method of vacuuming is no longer large enough to justify maintaining it; not to mention that we don't wish to invest the work that would be needed to make it play nicely with Hot Standby. Aside from the code directly related to old-style VACUUM FULL, this commit removes support for certain WAL record types that could only be generated within VACUUM FULL, redirect-pointer removal in heap_page_prune, and nontransactional generation of cache invalidation sinval messages (the last being the sticking point for Hot Standby). We still have to retain all code that copes with finding HEAP_MOVED_OFF and HEAP_MOVED_IN flag bits on existing tuples. This can't be removed as long as we want to support in-place update from pre-9.0 databases. Modified Files: -------------- pgsql/doc/src/sgml: indexam.sgml (r2.32 -> r2.33) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/indexam.sgml?r1=2.32&r2=2.33) maintenance.sgml (r1.98 -> r1.99) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/maintenance.sgml?r1=1.98&r2=1.99) pgsql/doc/src/sgml/ref: vacuum.sgml (r1.57 -> r1.58) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/vacuum.sgml?r1=1.57&r2=1.58) vacuumdb.sgml (r1.49 -> r1.50) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/vacuumdb.sgml?r1=1.49&r2=1.50) pgsql/src/backend/access/gin: README (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/README?r1=1.6&r2=1.7) ginvacuum.c (r1.32 -> r1.33) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/ginvacuum.c?r1=1.32&r2=1.33) pgsql/src/backend/access/gist: gistvacuum.c (r1.46 -> r1.47) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistvacuum.c?r1=1.46&r2=1.47) pgsql/src/backend/access/heap: README.HOT (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/README.HOT?r1=1.4&r2=1.5) heapam.c (r1.285 -> r1.286) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c?r1=1.285&r2=1.286) pruneheap.c (r1.20 -> r1.21) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/pruneheap.c?r1=1.20&r2=1.21) pgsql/src/backend/access/nbtree: README (r1.21 -> r1.22) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/README?r1=1.21&r2=1.22) nbtpage.c (r1.117 -> r1.118) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtpage.c?r1=1.117&r2=1.118) nbtree.c (r1.174 -> r1.175) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtree.c?r1=1.174&r2=1.175) nbtxlog.c (r1.59 -> r1.60) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtxlog.c?r1=1.59&r2=1.60) pgsql/src/backend/access/transam: xact.c (r1.283 -> r1.284) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xact.c?r1=1.283&r2=1.284) xlog.c (r1.367 -> r1.368) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xlog.c?r1=1.367&r2=1.368) pgsql/src/backend/catalog: index.c (r1.334 -> r1.335) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c?r1=1.334&r2=1.335) pgsql/src/backend/commands: analyze.c (r1.149 -> r1.150) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/analyze.c?r1=1.149&r2=1.150) copy.c (r1.323 -> r1.324) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/copy.c?r1=1.323&r2=1.324) vacuum.c (r1.404 -> r1.405) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuum.c?r1=1.404&r2=1.405) vacuumlazy.c (r1.128 -> r1.129) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuumlazy.c?r1=1.128&r2=1.129) pgsql/src/backend/executor: execUtils.c (r1.169 -> r1.170) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execUtils.c?r1=1.169&r2=1.170) nodeModifyTable.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeModifyTable.c?r1=1.5&r2=1.6) pgsql/src/backend/parser: gram.y (r2.706 -> r2.707) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y?r1=2.706&r2=2.707) pgsql/src/backend/storage/lmgr: proc.c (r1.214 -> r1.215) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/proc.c?r1=1.214&r2=1.215) pgsql/src/backend/utils/cache: inval.c (r1.94 -> r1.95) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/inval.c?r1=1.94&r2=1.95) pgsql/src/backend/utils/time: tqual.c (r1.115 -> r1.116) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/time/tqual.c?r1=1.115&r2=1.116) pgsql/src/bin/scripts: vacuumdb.c (r1.33 -> r1.34) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/bin/scripts/vacuumdb.c?r1=1.33&r2=1.34) pgsql/src/include/access: genam.h (r1.82 -> r1.83) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/genam.h?r1=1.82&r2=1.83) heapam.h (r1.146 -> r1.147) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/heapam.h?r1=1.146&r2=1.147) htup.h (r1.110 -> r1.111) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/htup.h?r1=1.110&r2=1.111) nbtree.h (r1.127 -> r1.128) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/nbtree.h?r1=1.127&r2=1.128) xact.h (r1.100 -> r1.101) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/xact.h?r1=1.100&r2=1.101) xlog.h (r1.101 -> r1.102) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/xlog.h?r1=1.101&r2=1.102) pgsql/src/include/commands: vacuum.h (r1.87 -> r1.88) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/vacuum.h?r1=1.87&r2=1.88) pgsql/src/include/executor: executor.h (r1.166 -> r1.167) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/executor.h?r1=1.166&r2=1.167) pgsql/src/include/nodes: parsenodes.h (r1.427 -> r1.428) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h?r1=1.427&r2=1.428) pgsql/src/include/parser: kwlist.h (r1.10 -> r1.11) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/kwlist.h?r1=1.10&r2=1.11) pgsql/src/include/utils: inval.h (r1.48 -> r1.49) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/inval.h?r1=1.48&r2=1.49) pgsql/src/test/regress/expected: vacuum.out (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/vacuum.out?r1=1.4&r2=1.5) pgsql/src/test/regress/sql: vacuum.sql (r1.3 -> r1.4) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/vacuum.sql?r1=1.3&r2=1.4)