mirror of
https://github.com/postgres/postgres.git
synced 2025-06-27 23:21:58 +03:00
Replace XLogRecPtr struct with a 64-bit integer.
This simplifies code that needs to do arithmetic on XLogRecPtrs. To avoid changing on-disk format of data pages, the LSN on data pages is still stored in the old format. That should keep pg_upgrade happy. However, we have XLogRecPtrs embedded in the control file, and in the structs that are sent over the replication protocol, so this changes breaks compatibility of pg_basebackup and server. I didn't do anything about this in this patch, per discussion on -hackers, the right thing to do would to be to change the replication protocol to be architecture-independent, so that you could use a newer version of pg_receivexlog, for example, against an older server version.
This commit is contained in:
@ -197,7 +197,7 @@ gistplacetopage(Relation rel, Size freespace, GISTSTATE *giststate,
|
||||
SplitedPageLayout *dist = NULL,
|
||||
*ptr;
|
||||
BlockNumber oldrlink = InvalidBlockNumber;
|
||||
GistNSN oldnsn = {0, 0};
|
||||
GistNSN oldnsn = 0;
|
||||
SplitedPageLayout rootpg;
|
||||
BlockNumber blkno = BufferGetBlockNumber(buffer);
|
||||
bool is_rootsplit;
|
||||
@ -488,7 +488,7 @@ gistdoinsert(Relation r, IndexTuple itup, Size freespace, GISTSTATE *giststate)
|
||||
|
||||
/* Start from the root */
|
||||
firststack.blkno = GIST_ROOT_BLKNO;
|
||||
firststack.lsn.xrecoff = 0;
|
||||
firststack.lsn = 0;
|
||||
firststack.parent = NULL;
|
||||
firststack.downlinkoffnum = InvalidOffsetNumber;
|
||||
state.stack = stack = &firststack;
|
||||
|
@ -706,13 +706,7 @@ gistoptions(PG_FUNCTION_ARGS)
|
||||
XLogRecPtr
|
||||
GetXLogRecPtrForTemp(void)
|
||||
{
|
||||
static XLogRecPtr counter = {0, 1};
|
||||
|
||||
counter.xrecoff++;
|
||||
if (counter.xrecoff == 0)
|
||||
{
|
||||
counter.xlogid++;
|
||||
counter.xrecoff++;
|
||||
}
|
||||
static XLogRecPtr counter = 1;
|
||||
counter++;
|
||||
return counter;
|
||||
}
|
||||
|
Reference in New Issue
Block a user