While skimming over this I was baffled a bit about the usage of (InvalidBlockNumber - 1) as value for FORGET_DATABASE_FSYNC. It took me a while to realize that this code is abusing the BlockNumber typedef to pass around *segment* numbers, so the useful range is much smaller and thus the usage of that value is not a problem in practice.
I wonder if it wouldn't be better to clean this up by creating a separate typedef for segment numbers, with its own special values? -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc. ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings