diff options
author | Simon Riggs <simon@2ndQuadrant.com> | 2017-11-07 12:56:30 -0500 |
---|---|---|
committer | Simon Riggs <simon@2ndQuadrant.com> | 2017-11-07 12:56:30 -0500 |
commit | 4b0d28de06b28e57c540fca458e4853854fbeaf8 (patch) | |
tree | da303bac1c03aa7a84d9170a6ffc39fdad073721 /src/backend/utils/misc/pg_controldata.c | |
parent | 98267ee83e068afa8bd85c8cc710ab2144e711fa (diff) | |
download | postgresql-4b0d28de06b28e57c540fca458e4853854fbeaf8.tar.gz postgresql-4b0d28de06b28e57c540fca458e4853854fbeaf8.zip |
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>
Diffstat (limited to 'src/backend/utils/misc/pg_controldata.c')
-rw-r--r-- | src/backend/utils/misc/pg_controldata.c | 79 |
1 files changed, 37 insertions, 42 deletions
diff --git a/src/backend/utils/misc/pg_controldata.c b/src/backend/utils/misc/pg_controldata.c index bc2ca8731d7..1b5086a45dd 100644 --- a/src/backend/utils/misc/pg_controldata.c +++ b/src/backend/utils/misc/pg_controldata.c @@ -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); |