aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2011-08-31 21:49:58 -0400
committerBruce Momjian <bruce@momjian.us>2011-08-31 21:49:58 -0400
commit7971a57fd4ca4253393b77700d59670b5c6ec252 (patch)
tree71f7857bf4b7eb6935bcd6586b9447bdac34ea7a /src
parent97930cf578e28c01f67fe4006ffcdbb5aedf18c2 (diff)
downloadpostgresql-7971a57fd4ca4253393b77700d59670b5c6ec252.tar.gz
postgresql-7971a57fd4ca4253393b77700d59670b5c6ec252.zip
Fix pg_upgrade to preserve toast relfrozenxids for old 8.3 servers.
This fixes a pg_upgrade bug that could lead to query errors when clog files are improperly removed. Backpatch to 8.4, 9.0, 9.1.
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_dump/pg_dump.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index d7a147eb1fc..56db6e54c14 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -3978,14 +3978,13 @@ getTables(int *numTables)
* owning column, if any (note this dependency is AUTO as of 8.2)
*/
appendPQExpBuffer(query,
- "SELECT c.tableoid, c.oid, relname, "
- "relacl, relkind, relnamespace, "
- "(%s relowner) AS rolname, "
- "relchecks, (reltriggers <> 0) AS relhastriggers, "
- "relhasindex, relhasrules, relhasoids, "
- "relfrozenxid, "
- "0 AS toid, "
- "0 AS tfrozenxid, "
+ "SELECT c.tableoid, c.oid, c.relname, "
+ "c.relacl, c.relkind, c.relnamespace, "
+ "(%s c.relowner) AS rolname, "
+ "c.relchecks, (c.reltriggers <> 0) AS relhastriggers, "
+ "c.relhasindex, c.relhasrules, c.relhasoids, "
+ "c.relfrozenxid, tc.oid AS toid, "
+ "tc.relfrozenxid AS tfrozenxid, "
"'p' AS relpersistence, "
"NULL AS reloftype, "
"d.refobjid AS owning_tab, "
@@ -3999,7 +3998,8 @@ getTables(int *numTables)
"d.classid = c.tableoid AND d.objid = c.oid AND "
"d.objsubid = 0 AND "
"d.refclassid = c.tableoid AND d.deptype = 'a') "
- "WHERE relkind in ('%c', '%c', '%c', '%c') "
+ "LEFT JOIN pg_class tc ON (c.reltoastrelid = tc.oid) "
+ "WHERE c.relkind in ('%c', '%c', '%c', '%c') "
"ORDER BY c.oid",
username_subquery,
RELKIND_SEQUENCE,