diff --git a/src/backend/utils/time/snapmgr.c b/src/backend/utils/time/snapmgr.c index dfe2c70..f50fb5c 100644 --- a/src/backend/utils/time/snapmgr.c +++ b/src/backend/utils/time/snapmgr.c @@ -2016,7 +2016,10 @@ RestoreSnapshot(char *start_address) /* Copy SubXIDs, if present. */ if (serialized_snapshot->subxcnt > 0) { - snapshot->subxip = snapshot->xip + serialized_snapshot->xcnt; + if (snapshot->xip == NULL) + snapshot->subxip = (TransactionId *) (snapshot + 1); + else + snapshot->subxip = snapshot->xip + serialized_snapshot->xcnt; memcpy(snapshot->subxip, serialized_xids + serialized_snapshot->xcnt, serialized_snapshot->subxcnt * sizeof(TransactionId)); }