Just a little thing that's been bugging me. If one side of the 
pg_upgrade has checksums and the other does not, give a less 
cryptic error message.


-- 
Greg Sabino Mullane g...@endpoint.com
End Point Corporation
PGP Key: 0x14964AC8
diff --git a/contrib/pg_upgrade/controldata.c b/contrib/pg_upgrade/controldata.c
index a02a8ec..8a7b976 100644
--- a/contrib/pg_upgrade/controldata.c
+++ b/contrib/pg_upgrade/controldata.c
@@ -572,9 +572,17 @@ check_control_data(ControlData *oldctrl,
 	 * We might eventually allow upgrades from checksum to no-checksum
 	 * clusters.
 	 */
+	if (! oldctrl->data_checksum_version && newctrl->data_checksum_version)
+	{
+		pg_fatal("old version does not use data checksums but new one does\n");
+	}
+	if (oldctrl->data_checksum_version && ! newctrl->data_checksum_version)
+	{
+		pg_fatal("old version uses data checksums but new one does not\n");
+	}
 	if (oldctrl->data_checksum_version != newctrl->data_checksum_version)
 	{
-		pg_fatal("old and new pg_controldata checksum versions are invalid or do not match\n");
+		pg_fatal("old and new pg_controldata checksum versions do not match\n");
 	}
 }
 

Attachment: signature.asc
Description: Digital signature

Reply via email to