mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	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.
This commit is contained in:
		@@ -3960,14 +3960,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, "
 | 
			
		||||
@@ -3981,7 +3980,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,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user