diff options
| author | Tom Lane | 2010-02-08 04:33:55 +0000 |
|---|---|---|
| committer | Tom Lane | 2010-02-08 04:33:55 +0000 |
| commit | 0a469c87692d15a22eaa69d4b3a43dd8e278dd64 (patch) | |
| tree | 34353dece3a2a8da2c599562685831bdcb14080e /src/test | |
| parent | 1ddc2703a936d03953657f43345460b9242bbed1 (diff) | |
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.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/vacuum.out | 51 | ||||
| -rw-r--r-- | src/test/regress/sql/vacuum.sql | 46 |
2 files changed, 2 insertions, 95 deletions
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out index 40db5df47ec..f1b8dd0cacf 100644 --- a/src/test/regress/expected/vacuum.out +++ b/src/test/regress/expected/vacuum.out @@ -57,65 +57,16 @@ SELECT * FROM vactst; (0 rows) VACUUM (FULL, FREEZE) vactst; -VACUUM (ANALYZE, FULL INPLACE) vactst; +VACUUM (ANALYZE, FULL) vactst; CREATE TABLE vaccluster (i INT PRIMARY KEY); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "vaccluster_pkey" for table "vaccluster" ALTER TABLE vaccluster CLUSTER ON vaccluster_pkey; INSERT INTO vaccluster SELECT * FROM vactst; -CREATE TEMP TABLE vacid ( - relid regclass, - filenode_0 oid, - filenode_1 oid, - filenode_2 oid, - filenode_3 oid -); -INSERT INTO vacid (relid, filenode_0) -SELECT oid, relfilenode FROM pg_class WHERE oid::regclass IN ( - 'pg_am', -- normal catalog - 'pg_class', -- fundamental catalog - 'pg_database', -- shared catalog - 'vaccluster' , -- clustered table - 'vacid', -- temp table - 'vactst' -- normal table -); --- only clusterd table should be changed CLUSTER vaccluster; -UPDATE vacid SET filenode_1 = relfilenode - FROM pg_class WHERE oid = relid; --- all tables should not be changed -VACUUM (FULL INPLACE) pg_am; -VACUUM (FULL INPLACE) pg_class; -VACUUM (FULL INPLACE) pg_database; -VACUUM (FULL INPLACE) vaccluster; -VACUUM (FULL INPLACE) vacid; -VACUUM (FULL INPLACE) vactst; -UPDATE vacid SET filenode_2 = relfilenode - FROM pg_class WHERE oid = relid; --- only non-system tables should be changed VACUUM FULL pg_am; VACUUM FULL pg_class; VACUUM FULL pg_database; VACUUM FULL vaccluster; -VACUUM FULL vacid; VACUUM FULL vactst; -UPDATE vacid SET filenode_3 = relfilenode - FROM pg_class WHERE oid = relid; -SELECT relid, - filenode_0 = filenode_1 AS cluster, - filenode_1 = filenode_2 AS full_inplace, - filenode_2 = filenode_3 AS full - FROM vacid - ORDER BY relid::text; - relid | cluster | full_inplace | full --------------+---------+--------------+------ - pg_am | t | t | f - pg_class | t | t | t - pg_database | t | t | t - vaccluster | f | t | f - vacid | t | t | f - vactst | t | t | f -(6 rows) - DROP TABLE vaccluster; -DROP TABLE vacid; DROP TABLE vactst; diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql index 87772ad5f6d..30551ad1f27 100644 --- a/src/test/regress/sql/vacuum.sql +++ b/src/test/regress/sql/vacuum.sql @@ -40,62 +40,18 @@ DELETE FROM vactst; SELECT * FROM vactst; VACUUM (FULL, FREEZE) vactst; -VACUUM (ANALYZE, FULL INPLACE) vactst; +VACUUM (ANALYZE, FULL) vactst; CREATE TABLE vaccluster (i INT PRIMARY KEY); ALTER TABLE vaccluster CLUSTER ON vaccluster_pkey; INSERT INTO vaccluster SELECT * FROM vactst; - -CREATE TEMP TABLE vacid ( - relid regclass, - filenode_0 oid, - filenode_1 oid, - filenode_2 oid, - filenode_3 oid -); - -INSERT INTO vacid (relid, filenode_0) -SELECT oid, relfilenode FROM pg_class WHERE oid::regclass IN ( - 'pg_am', -- normal catalog - 'pg_class', -- fundamental catalog - 'pg_database', -- shared catalog - 'vaccluster' , -- clustered table - 'vacid', -- temp table - 'vactst' -- normal table -); - --- only clusterd table should be changed CLUSTER vaccluster; -UPDATE vacid SET filenode_1 = relfilenode - FROM pg_class WHERE oid = relid; --- all tables should not be changed -VACUUM (FULL INPLACE) pg_am; -VACUUM (FULL INPLACE) pg_class; -VACUUM (FULL INPLACE) pg_database; -VACUUM (FULL INPLACE) vaccluster; -VACUUM (FULL INPLACE) vacid; -VACUUM (FULL INPLACE) vactst; -UPDATE vacid SET filenode_2 = relfilenode - FROM pg_class WHERE oid = relid; - --- only non-system tables should be changed VACUUM FULL pg_am; VACUUM FULL pg_class; VACUUM FULL pg_database; VACUUM FULL vaccluster; -VACUUM FULL vacid; VACUUM FULL vactst; -UPDATE vacid SET filenode_3 = relfilenode - FROM pg_class WHERE oid = relid; - -SELECT relid, - filenode_0 = filenode_1 AS cluster, - filenode_1 = filenode_2 AS full_inplace, - filenode_2 = filenode_3 AS full - FROM vacid - ORDER BY relid::text; DROP TABLE vaccluster; -DROP TABLE vacid; DROP TABLE vactst; |
