Thread: pgsql: Fix WAL format incompatibility introduced by backpatching of52a
pgsql: Fix WAL format incompatibility introduced by backpatching of52a
From
Alexander Korotkov
Date:
Fix WAL format incompatibility introduced by backpatching of 52ac6cd2d0 52ac6cd2d0 added new field to ginxlogDeletePage and was backpatched to 9.4. That led to problems when patched postgres instance applies WAL records generated by non-patched one. WAL records generated by non-patched instance don't contain new field, which patched one is expecting to see. Thankfully, we can distinguish patched and non-patched WAL records by their data size. If we see that WAL record is generated by non-patched instance, we skip processing of new field. This commit comes with some assertions. In particular, if it appears that on some platform struct data size didn't change then static assertion will trigger. Reported-by: Simon Riggs Discussion: https://postgr.es/m/CANP8%2Bj%2BK4whxf7ET7%2BgO%2BG-baC3-WxqqH%3DnV4X2CgfEPA3Yu3g%40mail.gmail.com Author: Alexander Korotkov Reviewed-by: Simon Riggs, Alvaro Herrera Backpatch-through: 9.4 Branch ------ REL9_5_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/cda5f6575306e50136a5f8ce3f76d9b2d772b738 Modified Files -------------- src/backend/access/gin/ginxlog.c | 19 ++++++++++++++++++- src/include/access/gin_private.h | 10 ++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-)