mirror of
https://github.com/postgres/postgres.git
synced 2025-07-07 00:36:50 +03:00
Remove secondary checkpoint
Previously server reserved WAL for last two checkpoints, which used too much disk space for small servers. Bumps PG_CONTROL_VERSION Author: Simon Riggs <simon@2ndQuadrant.com> Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
This commit is contained in:
@ -93,41 +93,39 @@ pg_control_checkpoint(PG_FUNCTION_ARGS)
|
||||
tupdesc = CreateTemplateTupleDesc(19, false);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 1, "checkpoint_lsn",
|
||||
LSNOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 2, "prior_lsn",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 2, "redo_lsn",
|
||||
LSNOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 3, "redo_lsn",
|
||||
LSNOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 4, "redo_wal_file",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 3, "redo_wal_file",
|
||||
TEXTOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 5, "timeline_id",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 4, "timeline_id",
|
||||
INT4OID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 6, "prev_timeline_id",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 5, "prev_timeline_id",
|
||||
INT4OID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 7, "full_page_writes",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 6, "full_page_writes",
|
||||
BOOLOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 8, "next_xid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 7, "next_xid",
|
||||
TEXTOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 9, "next_oid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 8, "next_oid",
|
||||
OIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 10, "next_multixact_id",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 9, "next_multixact_id",
|
||||
XIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 11, "next_multi_offset",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 10, "next_multi_offset",
|
||||
XIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 12, "oldest_xid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 11, "oldest_xid",
|
||||
XIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 13, "oldest_xid_dbid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 12, "oldest_xid_dbid",
|
||||
OIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 14, "oldest_active_xid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 13, "oldest_active_xid",
|
||||
XIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 15, "oldest_multi_xid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 14, "oldest_multi_xid",
|
||||
XIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 16, "oldest_multi_dbid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 15, "oldest_multi_dbid",
|
||||
OIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 17, "oldest_commit_ts_xid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 16, "oldest_commit_ts_xid",
|
||||
XIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 18, "newest_commit_ts_xid",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 17, "newest_commit_ts_xid",
|
||||
XIDOID, -1, 0);
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 19, "checkpoint_time",
|
||||
TupleDescInitEntry(tupdesc, (AttrNumber) 18, "checkpoint_time",
|
||||
TIMESTAMPTZOID, -1, 0);
|
||||
tupdesc = BlessTupleDesc(tupdesc);
|
||||
|
||||
@ -149,62 +147,59 @@ pg_control_checkpoint(PG_FUNCTION_ARGS)
|
||||
values[0] = LSNGetDatum(ControlFile->checkPoint);
|
||||
nulls[0] = false;
|
||||
|
||||
values[1] = LSNGetDatum(ControlFile->prevCheckPoint);
|
||||
values[1] = LSNGetDatum(ControlFile->checkPointCopy.redo);
|
||||
nulls[1] = false;
|
||||
|
||||
values[2] = LSNGetDatum(ControlFile->checkPointCopy.redo);
|
||||
values[2] = CStringGetTextDatum(xlogfilename);
|
||||
nulls[2] = false;
|
||||
|
||||
values[3] = CStringGetTextDatum(xlogfilename);
|
||||
values[3] = Int32GetDatum(ControlFile->checkPointCopy.ThisTimeLineID);
|
||||
nulls[3] = false;
|
||||
|
||||
values[4] = Int32GetDatum(ControlFile->checkPointCopy.ThisTimeLineID);
|
||||
values[4] = Int32GetDatum(ControlFile->checkPointCopy.PrevTimeLineID);
|
||||
nulls[4] = false;
|
||||
|
||||
values[5] = Int32GetDatum(ControlFile->checkPointCopy.PrevTimeLineID);
|
||||
values[5] = BoolGetDatum(ControlFile->checkPointCopy.fullPageWrites);
|
||||
nulls[5] = false;
|
||||
|
||||
values[6] = BoolGetDatum(ControlFile->checkPointCopy.fullPageWrites);
|
||||
nulls[6] = false;
|
||||
|
||||
values[7] = CStringGetTextDatum(psprintf("%u:%u",
|
||||
values[6] = CStringGetTextDatum(psprintf("%u:%u",
|
||||
ControlFile->checkPointCopy.nextXidEpoch,
|
||||
ControlFile->checkPointCopy.nextXid));
|
||||
nulls[6] = false;
|
||||
|
||||
values[7] = ObjectIdGetDatum(ControlFile->checkPointCopy.nextOid);
|
||||
nulls[7] = false;
|
||||
|
||||
values[8] = ObjectIdGetDatum(ControlFile->checkPointCopy.nextOid);
|
||||
values[8] = TransactionIdGetDatum(ControlFile->checkPointCopy.nextMulti);
|
||||
nulls[8] = false;
|
||||
|
||||
values[9] = TransactionIdGetDatum(ControlFile->checkPointCopy.nextMulti);
|
||||
values[9] = TransactionIdGetDatum(ControlFile->checkPointCopy.nextMultiOffset);
|
||||
nulls[9] = false;
|
||||
|
||||
values[10] = TransactionIdGetDatum(ControlFile->checkPointCopy.nextMultiOffset);
|
||||
values[10] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestXid);
|
||||
nulls[10] = false;
|
||||
|
||||
values[11] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestXid);
|
||||
values[11] = ObjectIdGetDatum(ControlFile->checkPointCopy.oldestXidDB);
|
||||
nulls[11] = false;
|
||||
|
||||
values[12] = ObjectIdGetDatum(ControlFile->checkPointCopy.oldestXidDB);
|
||||
values[12] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestActiveXid);
|
||||
nulls[12] = false;
|
||||
|
||||
values[13] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestActiveXid);
|
||||
values[13] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestMulti);
|
||||
nulls[13] = false;
|
||||
|
||||
values[14] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestMulti);
|
||||
values[14] = ObjectIdGetDatum(ControlFile->checkPointCopy.oldestMultiDB);
|
||||
nulls[14] = false;
|
||||
|
||||
values[15] = ObjectIdGetDatum(ControlFile->checkPointCopy.oldestMultiDB);
|
||||
values[15] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestCommitTsXid);
|
||||
nulls[15] = false;
|
||||
|
||||
values[16] = TransactionIdGetDatum(ControlFile->checkPointCopy.oldestCommitTsXid);
|
||||
values[16] = TransactionIdGetDatum(ControlFile->checkPointCopy.newestCommitTsXid);
|
||||
nulls[16] = false;
|
||||
|
||||
values[17] = TransactionIdGetDatum(ControlFile->checkPointCopy.newestCommitTsXid);
|
||||
nulls[17] = false;
|
||||
|
||||
values[18] = TimestampTzGetDatum(
|
||||
values[17] = TimestampTzGetDatum(
|
||||
time_t_to_timestamptz(ControlFile->checkPointCopy.time));
|
||||
nulls[18] = false;
|
||||
nulls[17] = false;
|
||||
|
||||
htup = heap_form_tuple(tupdesc, values, nulls);
|
||||
|
||||
|
Reference in New Issue
Block a user