diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index e297166bd9..b51826dc68 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -3312,7 +3312,7 @@ ANY num_sync ( pg_stat_replication view. The standby will report - the last write-ahead log position it has written, the last position it + the last write-ahead log location it has written, the last position it has flushed to disk, and the last position it has applied. This parameter's value is the maximum interval, in seconds, between reports. Updates are diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index c96374a201..42b2bb71bb 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -4635,7 +4635,7 @@ SELECT * FROM pg_attribute standard comparison operators, like = and >. Two LSNs can be subtracted using the - operator; the result is the number of bytes separating - those write-ahead log positions. + those write-ahead log locations. diff --git a/doc/src/sgml/logicaldecoding.sgml b/doc/src/sgml/logicaldecoding.sgml index c2950613fa..8dcfc6c742 100644 --- a/doc/src/sgml/logicaldecoding.sgml +++ b/doc/src/sgml/logicaldecoding.sgml @@ -632,7 +632,7 @@ typedef void (*LogicalDecodeMessageCB) (struct LogicalDecodingContext *ctx, its XID. Note however that it can be NULL when the message is non-transactional and the XID was not assigned yet in the transaction which logged the message. The lsn has WAL - position of the message. The transactional says + location of the message. The transactional says if the message was sent as transactional or not. The prefix is arbitrary null-terminated prefix which can be used for identifying interesting messages for the current diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index de61e64069..79ca45a156 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -1829,7 +1829,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i being generated, but would differ when the sender becomes idle. In particular, when the standby has caught up completely, pg_stat_replication shows the time taken to - write, flush and replay the most recent reported WAL position rather than + write, flush and replay the most recent reported WAL location rather than zero as some users might expect. This is consistent with the goal of measuring synchronous commit and transaction visibility delays for recent write transactions. @@ -1865,7 +1865,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i receive_start_lsn pg_lsn - First write-ahead log position used when WAL receiver is + First write-ahead log location used when WAL receiver is started @@ -1876,16 +1876,16 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i received_lsn pg_lsn - Last write-ahead log position already received and flushed to - disk, the initial value of this field being the first log position used + Last write-ahead log location already received and flushed to + disk, the initial value of this field being the first log location used when WAL receiver is started received_tli integer - Timeline number of last write-ahead log position received and + Timeline number of last write-ahead log location received and flushed to disk, the initial value of this field being the timeline - number of the first log position used when WAL receiver is started + number of the first log location used when WAL receiver is started @@ -1901,12 +1901,12 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i latest_end_lsn pg_lsn - Last write-ahead log position reported to origin WAL sender + Last write-ahead log location reported to origin WAL sender latest_end_time timestamp with time zone - Time of last write-ahead log position reported to origin WAL sender + Time of last write-ahead log location reported to origin WAL sender slot_name @@ -1967,7 +1967,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i received_lsn pg_lsn - Last write-ahead log position received, the initial value of + Last write-ahead log location received, the initial value of this field being 0 @@ -1984,13 +1984,13 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i latest_end_lsn pg_lsn - Last write-ahead log position reported to origin WAL sender + Last write-ahead log location reported to origin WAL sender latest_end_time timestamp with time zone - Time of last write-ahead log position reported to origin WAL + Time of last write-ahead log location reported to origin WAL sender diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index dadaa47d69..d23df0261c 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -1724,7 +1724,7 @@ The commands accepted in walsender mode are: consistent_point (text) - The WAL position at which the slot became consistent. This is the + The WAL location at which the slot became consistent. This is the earliest location from which streaming can start on this replication slot. @@ -1764,7 +1764,7 @@ The commands accepted in walsender mode are: Instructs server to start streaming WAL, starting at - WAL position XXX/XXX. + WAL location XXX/XXX. If TIMELINE option is specified, streaming starts on timeline tli; otherwise, the server's current timeline is selected. The server can @@ -1796,7 +1796,7 @@ The commands accepted in walsender mode are: acknowledges this by also exiting COPY mode, the server sends a result set with one row and two columns, indicating the next timeline in this server's history. The first column is the next timeline's ID (type int8), and the - second column is the WAL position where the switch happened (type text). Usually, + second column is the WAL location where the switch happened (type text). Usually, the switch position is the end of the WAL that was streamed, but there are corner cases where the server can send some WAL from the old timeline that it has not itself replayed before promoting. Finally, the @@ -2115,7 +2115,7 @@ The commands accepted in walsender mode are: Instructs server to start streaming WAL for logical replication, starting - at WAL position XXX/XXX. The server can + at WAL location XXX/XXX. The server can reply with an error, for example if the requested section of WAL has already been recycled. On success, server responds with a CopyBothResponse message, and then starts to stream WAL to the frontend. @@ -2147,7 +2147,7 @@ The commands accepted in walsender mode are: XXX/XXX - The WAL position to begin streaming at. + The WAL location to begin streaming at. diff --git a/doc/src/sgml/ref/pg_waldump.sgml b/doc/src/sgml/ref/pg_waldump.sgml index 4c92eeed68..cff88a4c1e 100644 --- a/doc/src/sgml/ref/pg_waldump.sgml +++ b/doc/src/sgml/ref/pg_waldump.sgml @@ -85,7 +85,7 @@ PostgreSQL documentation - Stop reading at the specified log position, instead of reading to the + Stop reading at the specified WAL location, instead of reading to the end of the log stream. @@ -144,7 +144,7 @@ PostgreSQL documentation - Log position at which to start reading. The default is to start reading + WAL location at which to start reading. The default is to start reading the first valid log record found in the earliest file found. diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml index a749b83dc0..940c37b21a 100644 --- a/doc/src/sgml/wal.sgml +++ b/doc/src/sgml/wal.sgml @@ -791,7 +791,7 @@ pg_control. Therefore, at the start of recovery, the server first reads pg_control and then the checkpoint record; then it performs the REDO operation by - scanning forward from the log position indicated in the checkpoint + scanning forward from the log location indicated in the checkpoint record. Because the entire content of data pages is saved in the log on the first page modification after a checkpoint (assuming is not disabled), all pages diff --git a/src/backend/access/transam/recovery.conf.sample b/src/backend/access/transam/recovery.conf.sample index d5cb437e50..de4e38f9fe 100644 --- a/src/backend/access/transam/recovery.conf.sample +++ b/src/backend/access/transam/recovery.conf.sample @@ -67,7 +67,7 @@ # must set a recovery target. # # You may set a recovery target either by transactionId, by name, -# by timestamp or by WAL position (LSN). Recovery may either include or +# by timestamp or by WAL location (LSN). Recovery may either include or # exclude the transaction(s) with the recovery target value (ie, stop either # just after or just before the given target, respectively). # diff --git a/src/backend/access/transam/timeline.c b/src/backend/access/transam/timeline.c index b442e7aa88..8cab8b9aa9 100644 --- a/src/backend/access/transam/timeline.c +++ b/src/backend/access/transam/timeline.c @@ -15,7 +15,7 @@ * * * parentTLI ID of the parent timeline - * switchpoint XLogRecPtr of the WAL position where the switch happened + * switchpoint XLogRecPtr of the WAL location where the switch happened * reason human-readable explanation of why the timeline was changed * * The fields are separated by tabs. Lines beginning with # are comments, and @@ -278,7 +278,7 @@ findNewestTimeLine(TimeLineID startTLI) * * newTLI: ID of the new timeline * parentTLI: ID of its immediate parent - * switchpoint: XLOG position where the system switched to the new timeline + * switchpoint: WAL location where the system switched to the new timeline * reason: human-readable explanation of why the timeline was switched * * Currently this is only used at the end recovery, and so there are no locking diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index c9fff42991..7bf2555af2 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -2294,7 +2294,7 @@ RecordTransactionAbortPrepared(TransactionId xid, * * Store pointers to the start/end of the WAL record along with the xid in * a gxact entry in shared memory TwoPhaseState structure. If caller - * specifies InvalidXLogRecPtr as WAL position to fetch the two-phase + * specifies InvalidXLogRecPtr as WAL location to fetch the two-phase * data, the entry is marked as located on disk. */ void diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index bc5fb4bb83..b98e37e1d3 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -5643,7 +5643,7 @@ recoveryStopsBefore(XLogReaderState *record) recoveryStopTime = 0; recoveryStopName[0] = '\0'; ereport(LOG, - (errmsg("recovery stopping before WAL position (LSN) \"%X/%X\"", + (errmsg("recovery stopping before WAL location (LSN) \"%X/%X\"", (uint32) (recoveryStopLSN >> 32), (uint32) recoveryStopLSN))); return true; @@ -5800,7 +5800,7 @@ recoveryStopsAfter(XLogReaderState *record) recoveryStopTime = 0; recoveryStopName[0] = '\0'; ereport(LOG, - (errmsg("recovery stopping after WAL position (LSN) \"%X/%X\"", + (errmsg("recovery stopping after WAL location (LSN) \"%X/%X\"", (uint32) (recoveryStopLSN >> 32), (uint32) recoveryStopLSN))); return true; @@ -6323,7 +6323,7 @@ StartupXLOG(void) recoveryTargetName))); else if (recoveryTarget == RECOVERY_TARGET_LSN) ereport(LOG, - (errmsg("starting point-in-time recovery to WAL position (LSN) \"%X/%X\"", + (errmsg("starting point-in-time recovery to WAL location (LSN) \"%X/%X\"", (uint32) (recoveryTargetLSN >> 32), (uint32) recoveryTargetLSN))); else if (recoveryTarget == RECOVERY_TARGET_IMMEDIATE) @@ -7455,7 +7455,7 @@ StartupXLOG(void) exitArchiveRecovery(EndOfLogTLI, EndOfLog); /* - * Prepare to write WAL starting at EndOfLog position, and init xlog + * Prepare to write WAL starting at EndOfLog location, and init xlog * buffer cache using the block containing the last record from the * previous incarnation. */ @@ -10159,7 +10159,7 @@ XLogFileNameP(TimeLineID tli, XLogSegNo segno) * when backup needs to generate tablespace_map file, it is used to * embed escape character before newline character in tablespace path. * - * Returns the minimum WAL position that must be present to restore from this + * Returns the minimum WAL location that must be present to restore from this * backup, and the corresponding timeline ID in *starttli_p. * * Every successfully started non-exclusive backup must be stopped by calling @@ -10669,7 +10669,7 @@ get_backup_status(void) * If labelfile is NULL, this stops an exclusive backup. Otherwise this stops * the non-exclusive backup specified by 'labelfile'. * - * Returns the last WAL position that must be present to restore from this + * Returns the last WAL location that must be present to restore from this * backup, and the corresponding timeline ID in *stoptli_p. * * It is the responsibility of the caller of this function to verify the @@ -11569,7 +11569,7 @@ next_record_is_invalid: } /* - * Open the WAL segment containing WAL position 'RecPtr'. + * Open the WAL segment containing WAL location 'RecPtr'. * * The segment can be fetched via restore_command, or via walreceiver having * streamed the record, or it can already be present in pg_wal. Checking diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index df93265c20..028170c952 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -1090,7 +1090,7 @@ XLogWalRcvFlush(bool dying) } /* - * Send reply message to primary, indicating our current XLOG positions, oldest + * Send reply message to primary, indicating our current WAL locations, oldest * xmin and the current time. * * If 'force' is not set, the message is only sent if enough time has @@ -1125,7 +1125,7 @@ XLogWalRcvSendReply(bool force, bool requestReply) * We can compare the write and flush positions to the last message we * sent without taking any lock, but the apply position requires a spin * lock, so we don't check that unless something else has changed or 10 - * seconds have passed. This means that the apply log position will + * seconds have passed. This means that the apply WAL location will * appear, from the master's point of view, to lag slightly, but since * this is only for reporting purposes and only on idle systems, that's * probably OK. diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index e4e5337d54..a899841d83 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -194,7 +194,7 @@ static volatile sig_atomic_t replication_active = false; static LogicalDecodingContext *logical_decoding_ctx = NULL; static XLogRecPtr logical_startptr = InvalidXLogRecPtr; -/* A sample associating a log position with the time it was written. */ +/* A sample associating a WAL location with the time it was written. */ typedef struct { XLogRecPtr lsn; @@ -340,7 +340,7 @@ static void IdentifySystem(void) { char sysid[32]; - char xpos[MAXFNAMELEN]; + char xloc[MAXFNAMELEN]; XLogRecPtr logptr; char *dbname = NULL; DestReceiver *dest; @@ -367,7 +367,7 @@ IdentifySystem(void) else logptr = GetFlushRecPtr(); - snprintf(xpos, sizeof(xpos), "%X/%X", (uint32) (logptr >> 32), (uint32) logptr); + snprintf(xloc, sizeof(xloc), "%X/%X", (uint32) (logptr >> 32), (uint32) logptr); if (MyDatabaseId != InvalidOid) { @@ -406,8 +406,8 @@ IdentifySystem(void) /* column 2: timeline */ values[1] = Int32GetDatum(ThisTimeLineID); - /* column 3: xlog position */ - values[2] = CStringGetTextDatum(xpos); + /* column 3: wal location */ + values[2] = CStringGetTextDatum(xloc); /* column 4: database name, or NULL if none */ if (dbname) @@ -842,7 +842,7 @@ static void CreateReplicationSlot(CreateReplicationSlotCmd *cmd) { const char *snapshot_name = NULL; - char xpos[MAXFNAMELEN]; + char xloc[MAXFNAMELEN]; char *slot_name; bool reserve_wal = false; CRSSnapshotAction snapshot_action = CRS_EXPORT_SNAPSHOT; @@ -975,7 +975,7 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd) ReplicationSlotSave(); } - snprintf(xpos, sizeof(xpos), "%X/%X", + snprintf(xloc, sizeof(xloc), "%X/%X", (uint32) (MyReplicationSlot->data.confirmed_flush >> 32), (uint32) MyReplicationSlot->data.confirmed_flush); @@ -1008,7 +1008,7 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd) values[0] = CStringGetTextDatum(slot_name); /* consistent wal location */ - values[1] = CStringGetTextDatum(xpos); + values[1] = CStringGetTextDatum(xloc); /* snapshot name, or NULL if none */ if (snapshot_name != NULL) @@ -1729,7 +1729,7 @@ PhysicalConfirmReceivedLocation(XLogRecPtr lsn) } /* - * Regular reply from standby advising of WAL positions on standby server. + * Regular reply from standby advising of WAL locations on standby server. */ static void ProcessStandbyReplyMessage(void) @@ -2579,7 +2579,7 @@ XLogSendPhysical(void) /* * Record the current system time as an approximation of the time at which - * this WAL position was written for the purposes of lag tracking. + * this WAL location was written for the purposes of lag tracking. * * In theory we could make XLogFlush() record a time in shmem whenever WAL * is flushed and we could get that time as well as the LSN when we call @@ -3353,7 +3353,7 @@ WalSndKeepaliveIfNecessary(TimestampTz now) /* * Record the end of the WAL and the time it was flushed locally, so that - * LagTrackerRead can compute the elapsed time (lag) when this WAL position is + * LagTrackerRead can compute the elapsed time (lag) when this WAL location is * eventually reported to have been written, flushed and applied by the * standby in a reply message. */ @@ -3410,7 +3410,7 @@ LagTrackerWrite(XLogRecPtr lsn, TimestampTz local_flush_time) } /* - * Find out how much time has elapsed between the moment WAL position 'lsn' + * Find out how much time has elapsed between the moment WAL location 'lsn' * (or the highest known earlier LSN) was flushed locally and the time 'now'. * We have a separate read head for each of the reported LSN locations we * receive in replies from standby; 'head' controls which read head is diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c index c7ddfcbfdf..b3811bc44e 100644 --- a/src/bin/pg_basebackup/pg_basebackup.c +++ b/src/bin/pg_basebackup/pg_basebackup.c @@ -1782,7 +1782,7 @@ BaseBackup(void) } /* - * Get the starting xlog position + * Get the starting WAL location */ res = PQgetResult(conn); if (PQresultStatus(res) != PGRES_TUPLES_OK) diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c index 0f2845bbc2..1b79c00275 100644 --- a/src/bin/pg_basebackup/receivelog.c +++ b/src/bin/pg_basebackup/receivelog.c @@ -438,7 +438,7 @@ CheckServerVersionForStreaming(PGconn *conn) * If 'synchronous' is true, the received WAL is flushed as soon as written, * otherwise only when the WAL file is closed. * - * Note: The log position *must* be at a log segment start! + * Note: The WAL location *must* be at a log segment start! */ bool ReceiveXlogStream(PGconn *conn, StreamCtl *stream) @@ -733,7 +733,7 @@ ReadEndOfStreamingResult(PGresult *res, XLogRecPtr *startpos, uint32 *timeline) * 4 | 0/9949AE0 * * next_tli is the timeline ID of the next timeline after the one that - * just finished streaming. next_tli_startpos is the XLOG position where + * just finished streaming. next_tli_startpos is the WAL location where * the server switched to it. *---------- */ diff --git a/src/bin/pg_rewind/parsexlog.c b/src/bin/pg_rewind/parsexlog.c index a7f6fe2df3..1e3d329705 100644 --- a/src/bin/pg_rewind/parsexlog.c +++ b/src/bin/pg_rewind/parsexlog.c @@ -149,7 +149,7 @@ readOneRecord(const char *datadir, XLogRecPtr ptr, int tliIndex) } /* - * Find the previous checkpoint preceding given WAL position. + * Find the previous checkpoint preceding given WAL location. */ void findLastCheckpoint(const char *datadir, XLogRecPtr forkptr, int tliIndex, diff --git a/src/bin/pg_rewind/pg_rewind.c b/src/bin/pg_rewind/pg_rewind.c index 2014feea40..622dc6d135 100644 --- a/src/bin/pg_rewind/pg_rewind.c +++ b/src/bin/pg_rewind/pg_rewind.c @@ -231,7 +231,7 @@ main(int argc, char **argv) else { findCommonAncestorTimeline(&divergerec, &lastcommontliIndex); - printf(_("servers diverged at WAL position %X/%X on timeline %u\n"), + printf(_("servers diverged at WAL location %X/%X on timeline %u\n"), (uint32) (divergerec >> 32), (uint32) divergerec, targetHistory[lastcommontliIndex].tli); @@ -415,9 +415,9 @@ sanityChecks(void) } /* - * Find minimum from two XLOG positions assuming InvalidXLogRecPtr means + * Find minimum from two WAL locations assuming InvalidXLogRecPtr means * infinity as src/include/access/timeline.h states. This routine should - * be used only when comparing XLOG positions related to history files. + * be used only when comparing WAL locations related to history files. */ static XLogRecPtr MinXLogRecPtr(XLogRecPtr a, XLogRecPtr b) diff --git a/src/bin/pg_waldump/pg_waldump.c b/src/bin/pg_waldump/pg_waldump.c index 9491ccb13b..77b36f60e1 100644 --- a/src/bin/pg_waldump/pg_waldump.c +++ b/src/bin/pg_waldump/pg_waldump.c @@ -686,7 +686,7 @@ usage(void) printf(_(" %s [OPTION]... [STARTSEG [ENDSEG]]\n"), progname); printf(_("\nOptions:\n")); printf(_(" -b, --bkp-details output detailed information about backup blocks\n")); - printf(_(" -e, --end=RECPTR stop reading at log position RECPTR\n")); + printf(_(" -e, --end=RECPTR stop reading at WAL location RECPTR\n")); printf(_(" -f, --follow keep retrying after reaching end of WAL\n")); printf(_(" -n, --limit=N number of records to display\n")); printf(_(" -p, --path=PATH directory in which to find log segment files or a\n" @@ -694,7 +694,7 @@ usage(void) " (default: current directory, ./pg_wal, PGDATA/pg_wal)\n")); printf(_(" -r, --rmgr=RMGR only show records generated by resource manager RMGR\n" " use --rmgr=list to list valid resource manager names\n")); - printf(_(" -s, --start=RECPTR start reading at log position RECPTR\n")); + printf(_(" -s, --start=RECPTR start reading at WAL location RECPTR\n")); printf(_(" -t, --timeline=TLI timeline from which to read log records\n" " (default: 1 or the value used in STARTSEG)\n")); printf(_(" -V, --version output version information, then exit\n")); @@ -775,7 +775,7 @@ main(int argc, char **argv) case 'e': if (sscanf(optarg, "%X/%X", &xlogid, &xrecoff) != 2) { - fprintf(stderr, _("%s: could not parse end log position \"%s\"\n"), + fprintf(stderr, _("%s: could not parse end WAL location \"%s\"\n"), progname, optarg); goto bad_argument; } @@ -829,7 +829,7 @@ main(int argc, char **argv) case 's': if (sscanf(optarg, "%X/%X", &xlogid, &xrecoff) != 2) { - fprintf(stderr, _("%s: could not parse start log position \"%s\"\n"), + fprintf(stderr, _("%s: could not parse start WAL location \"%s\"\n"), progname, optarg); goto bad_argument; } @@ -929,7 +929,7 @@ main(int argc, char **argv) else if (!XLByteInSeg(private.startptr, segno)) { fprintf(stderr, - _("%s: start log position %X/%X is not inside file \"%s\"\n"), + _("%s: start WAL location %X/%X is not inside file \"%s\"\n"), progname, (uint32) (private.startptr >> 32), (uint32) private.startptr, @@ -973,7 +973,7 @@ main(int argc, char **argv) private.endptr != (segno + 1) * XLogSegSize) { fprintf(stderr, - _("%s: end log position %X/%X is not inside file \"%s\"\n"), + _("%s: end WAL location %X/%X is not inside file \"%s\"\n"), progname, (uint32) (private.endptr >> 32), (uint32) private.endptr, @@ -985,7 +985,7 @@ main(int argc, char **argv) /* we don't know what to print */ if (XLogRecPtrIsInvalid(private.startptr)) { - fprintf(stderr, _("%s: no start log position given.\n"), progname); + fprintf(stderr, _("%s: no start WAL location given\n"), progname); goto bad_argument; } diff --git a/src/include/access/timeline.h b/src/include/access/timeline.h index 05363c6842..c1911feb16 100644 --- a/src/include/access/timeline.h +++ b/src/include/access/timeline.h @@ -17,7 +17,7 @@ /* * A list of these structs describes the timeline history of the server. Each * TimeLineHistoryEntry represents a piece of WAL belonging to the history, - * from newest to oldest. All WAL positions between 'begin' and 'end' belong to + * from newest to oldest. All WAL locations between 'begin' and 'end' belong to * the timeline represented by the entry. Together the 'begin' and 'end' * pointers of all the entries form a contiguous line from beginning of time * to infinity.