On Wed, Sep 07, 2022 at 07:02:07PM +0900, Michael Paquier wrote: > Before posting my previous patch, I have considered a few options: > - Extend errormsg_buf with an error code, but the frontend does not > care about that. > - Make RestoreBlockImage() a backend-only routine and provide a better > error control without filling in errormsg_buf, but I'd like to believe > that this code is useful for some frontend code even if core does not > use it yet in a frontend context. > - Change the signature of RestoreBlockImage() to return an enum with > at least a tri state instead of a boolean. For this one I could not > convince myself that this is worth the complexity, as we are talking > about inconsistent build options between nodes doing physical > replication, and the error message is the useful piece to know what's > happening (frontends are only going to consume the error message > anyway).
After a second look, I was not feeling enthusiastic about adding more complications in this code path for this case, so I have finished by applying my previous patch to address this open item. I am wondering if there is a use-case for backpatching something like that to older versions though? FPW compression is available since 9.5 but the code has never consumed the error message produced by RestoreBlockImage() when pglz fails to decompress an image, and there is equally no exact information provided when the status data of the block in the record is incorrect, even if recovery provides some context associated to the record being replayed. -- Michael
signature.asc
Description: PGP signature