On Sat, Mar 16, 2019 at 11:18:17AM +0100, Magnus Hagander wrote: > BLCKSZ is very much an internal term. The exposed name through pg_settings > is block_size, so I think the original was better. Combining that one with > yours into "initialized with block size %d" etc, makes it a lot nicer.
Yes, what Fabien and you say here makes sense. > The "incompatible with pg_checksums" part may be a bit redundant with the > commandname at the start as well, as I now realized Fabien pointed out > downthread. But I would suggest just cutting it and saying "%s: database > files are incompatible" or maybe "%s: data directory is incompatible" even? "Cluster" is more consistent with the surroundings. So what about the attached then? -- Michael
diff --git a/src/bin/pg_checksums/pg_checksums.c b/src/bin/pg_checksums/pg_checksums.c
index 5d4083fa9f..b7ebc11017 100644
--- a/src/bin/pg_checksums/pg_checksums.c
+++ b/src/bin/pg_checksums/pg_checksums.c
@@ -327,6 +327,15 @@ main(int argc, char *argv[])
exit(1);
}
+ if (ControlFile->blcksz != BLCKSZ)
+ {
+ fprintf(stderr, _("%s: database cluster is not compatible.\n"),
+ progname);
+ fprintf(stderr, _("The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u.\n"),
+ ControlFile->blcksz, BLCKSZ);
+ exit(1);
+ }
+
if (ControlFile->state != DB_SHUTDOWNED &&
ControlFile->state != DB_SHUTDOWNED_IN_RECOVERY)
{
signature.asc
Description: PGP signature
