Fix pg_upgrade so it vacuums all databases.
This commit is contained in:
parent
008ef1de22
commit
692b83730b
@ -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
|
|||||||
|
|
||||||
|
|
||||||
# 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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user