1
0
mirror of https://github.com/postgres/postgres.git synced 2025-10-27 00:12:01 +03:00

Fix alignment problems with SharedInvalSmgrMsg.

SharedInvalSmgrMsg can't require 8-byte alignment, because then
SharedInvalidationMessage will require 8-byte alignment, which will
then cause ParseCommitRecord to fail on machines that are picky
about alignment, because it assumes that everything that gets
packed into a commit record requires only 4-byte alignment.

Another problem with 05d4cbf9b6.

Discussion: http://postgr.es/m/3825454.1664310917@sss.pgh.pa.us
This commit is contained in:
Robert Haas
2022-09-28 07:51:48 -04:00
parent d0b1dbcb98
commit 0222be1371
2 changed files with 12 additions and 4 deletions

View File

@@ -86,11 +86,14 @@ typedef struct
typedef struct
{
/* note: field layout chosen to pack into 16 bytes */
/* note: field layout chosen to pack into 20 bytes */
int8 id; /* type field --- must be first */
int8 backend_hi; /* high bits of backend ID, if temprel */
uint16 backend_lo; /* low bits of backend ID, if temprel */
RelFileLocator rlocator; /* spcOid, dbOid, relNumber */
Oid dbOid;
Oid spcOid;
uint32 relNumber_hi; /* avoid 8 byte alignment requirement */
uint32 relNumber_lo;
} SharedInvalSmgrMsg;
#define SHAREDINVALRELMAP_ID (-4)