Commit 692b8373 authored by Bruce Momjian's avatar Bruce Momjian

Fix pg_upgrade so it vacuums all databases.

parent 008ef1de
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# pg_upgrade: update a database without needing a full dump/reload cycle. # pg_upgrade: update a database without needing a full dump/reload cycle.
# CAUTION: read the manual page before trying to use this! # CAUTION: read the manual page before trying to use this!
# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_upgrade,v 1.12 1999/09/28 16:02:28 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_upgrade,v 1.13 1999/09/28 18:04:18 momjian Exp $
# #
# NOTE: we must be sure to update the version-checking code a few dozen lines # NOTE: we must be sure to update the version-checking code a few dozen lines
# below for each new PostgreSQL release. # below for each new PostgreSQL release.
...@@ -100,23 +100,24 @@ esac ...@@ -100,23 +100,24 @@ esac
# OK, ready to proceed. # OK, ready to proceed.
# XXX Do I need to create a database?
# remove any COPY statements, except for the one that loads pg_shadow. # Remove any COPY statements, except for the one that loads pg_shadow.
# there shouldn't be any others in there anyway... # There shouldn't be any others in there anyway...
# Also marks rows as committed because when pg_log is replaced with
# the saved version, the transaction statuses may be wrong, so
# vacuum sets the on-row status to the proper value.
cat $INPUT | awk ' { cat $INPUT | awk ' {
if (toupper($1) == "COPY" && $2 != "pg_shadow") if (toupper($1) == "COPY" && $2 != "pg_shadow")
while (getline $0 > 0 && $0 != "\\.") while (getline $0 > 0 && $0 != "\\.")
; ;
else if (tolower($1) == "\\connect" &&
tolower($2) == "template1")
printf "VACUUM;\n%s\n", $0;
else print $0; else print $0;
}' >/tmp/$$ }' >/tmp/$$
# Add a VACUUM command to the end of the pg_dump script. With MVCC, # We need to vacuum the last database too
# this is necessary to ensure that all the rows in the new database's
# system tables will still be considered committed after we overwrite
# pg_log with the old database's commit log...
echo "VACUUM;" >>/tmp/$$ echo "VACUUM;" >>/tmp/$$
# Create and vacuum empty tables/indexes # Create and vacuum empty tables/indexes
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment