mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +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:
@ -206,7 +206,8 @@ page_header(PG_FUNCTION_ARGS)
|
||||
/* Extract information from the page header */
|
||||
|
||||
lsn = PageGetLSN(page);
|
||||
snprintf(lsnchar, sizeof(lsnchar), "%X/%X", lsn.xlogid, lsn.xrecoff);
|
||||
snprintf(lsnchar, sizeof(lsnchar), "%X/%X",
|
||||
(uint32) (lsn >> 32), (uint32) lsn);
|
||||
|
||||
values[0] = CStringGetTextDatum(lsnchar);
|
||||
values[1] = UInt16GetDatum(PageGetTLI(page));
|
||||
|
Reference in New Issue
Block a user