diff options
Diffstat (limited to 'src/backend/access')
-rw-r--r-- | src/backend/access/transam/twophase.c | 6 | ||||
-rw-r--r-- | src/backend/access/transam/xact.c | 18 | ||||
-rw-r--r-- | src/backend/access/transam/xlog.c | 42 |
3 files changed, 31 insertions, 35 deletions
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index 7d6680485b0..6f495a84087 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.29 2007/04/03 16:34:35 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.30 2007/04/30 21:01:52 tgl Exp $ * * NOTES * Each global transaction is associated with a global transaction @@ -1675,7 +1675,7 @@ RecordTransactionCommitPrepared(TransactionId xid, /* Emit the XLOG commit record */ xlrec.xid = xid; - xlrec.crec.xtime = time(NULL); + xlrec.crec.xact_time = GetCurrentTimestamp(); xlrec.crec.nrels = nrels; xlrec.crec.nsubxacts = nchildren; rdata[0].data = (char *) (&xlrec); @@ -1753,7 +1753,7 @@ RecordTransactionAbortPrepared(TransactionId xid, /* Emit the XLOG abort record */ xlrec.xid = xid; - xlrec.arec.xtime = time(NULL); + xlrec.arec.xact_time = GetCurrentTimestamp(); xlrec.arec.nrels = nrels; xlrec.arec.nsubxacts = nchildren; rdata[0].data = (char *) (&xlrec); diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index e3f16d38a5b..f2685ee0b34 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.241 2007/04/30 03:23:48 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.242 2007/04/30 21:01:52 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -773,7 +773,7 @@ RecordTransactionCommit(void) MyProc->inCommit = true; SetCurrentTransactionStopTimestamp(); - xlrec.xtime = timestamptz_to_time_t(xactStopTimestamp); + xlrec.xact_time = xactStopTimestamp; xlrec.nrels = nrels; xlrec.nsubxacts = nchildren; rdata[0].data = (char *) (&xlrec); @@ -1069,7 +1069,7 @@ RecordTransactionAbort(void) XLogRecPtr recptr; SetCurrentTransactionStopTimestamp(); - xlrec.xtime = timestamptz_to_time_t(xactStopTimestamp); + xlrec.xact_time = xactStopTimestamp; xlrec.nrels = nrels; xlrec.nsubxacts = nchildren; rdata[0].data = (char *) (&xlrec); @@ -1247,7 +1247,7 @@ RecordSubTransactionAbort(void) xl_xact_abort xlrec; XLogRecPtr recptr; - xlrec.xtime = time(NULL); + xlrec.xact_time = GetCurrentTimestamp(); xlrec.nrels = nrels; xlrec.nsubxacts = nchildren; rdata[0].data = (char *) (&xlrec); @@ -4282,12 +4282,9 @@ xact_redo(XLogRecPtr lsn, XLogRecord *record) static void xact_desc_commit(StringInfo buf, xl_xact_commit *xlrec) { - struct tm *tm = localtime(&xlrec->xtime); int i; - appendStringInfo(buf, "%04u-%02u-%02u %02u:%02u:%02u", - tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); + appendStringInfoString(buf, timestamptz_to_str(xlrec->xact_time)); if (xlrec->nrels > 0) { appendStringInfo(buf, "; rels:"); @@ -4313,12 +4310,9 @@ xact_desc_commit(StringInfo buf, xl_xact_commit *xlrec) static void xact_desc_abort(StringInfo buf, xl_xact_abort *xlrec) { - struct tm *tm = localtime(&xlrec->xtime); int i; - appendStringInfo(buf, "%04u-%02u-%02u %02u:%02u:%02u", - tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); + appendStringInfoString(buf, timestamptz_to_str(xlrec->xact_time)); if (xlrec->nrels > 0) { appendStringInfo(buf, "; rels:"); diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index f70a3d5dd0e..655563a3d84 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.267 2007/04/03 16:34:35 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.268 2007/04/30 21:01:52 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -47,7 +47,6 @@ #include "storage/procarray.h" #include "storage/spin.h" #include "utils/builtins.h" -#include "utils/nabstime.h" #include "utils/pg_locale.h" @@ -114,11 +113,11 @@ static bool recoveryTarget = false; static bool recoveryTargetExact = false; static bool recoveryTargetInclusive = true; static TransactionId recoveryTargetXid; -static time_t recoveryTargetTime; +static TimestampTz recoveryTargetTime; /* if recoveryStopsHere returns true, it saves actual stop xid/time here */ static TransactionId recoveryStopXid; -static time_t recoveryStopTime; +static TimestampTz recoveryStopTime; static bool recoveryStopAfter; /* @@ -3536,7 +3535,7 @@ writeTimeLineHistory(TimeLineID newTLI, TimeLineID parentTLI, xlogfname, recoveryStopAfter ? "after" : "before", recoveryStopXid, - str_time(recoveryStopTime)); + timestamptz_to_str(recoveryStopTime)); nbytes = strlen(buffer); errno = 0; @@ -4276,17 +4275,16 @@ readRecoveryCommandFile(void) recoveryTargetExact = false; /* - * Convert the time string given by the user to the time_t format. - * We use type abstime's input converter because we know abstime - * has the same representation as time_t. + * Convert the time string given by the user to TimestampTz form. */ - recoveryTargetTime = (time_t) - DatumGetAbsoluteTime(DirectFunctionCall1(abstimein, - CStringGetDatum(tok2))); + recoveryTargetTime = + DatumGetTimestampTz(DirectFunctionCall3(timestamptz_in, + CStringGetDatum(tok2), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1))); ereport(LOG, (errmsg("recovery_target_time = %s", - DatumGetCString(DirectFunctionCall1(abstimeout, - AbsoluteTimeGetDatum((AbsoluteTime) recoveryTargetTime)))))); + timestamptz_to_str(recoveryTargetTime)))); } else if (strcmp(tok1, "recovery_target_inclusive") == 0) { @@ -4464,7 +4462,7 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis) { bool stopsHere; uint8 record_info; - time_t recordXtime; + TimestampTz recordXtime; /* Do we have a PITR target at all? */ if (!recoveryTarget) @@ -4479,14 +4477,14 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis) xl_xact_commit *recordXactCommitData; recordXactCommitData = (xl_xact_commit *) XLogRecGetData(record); - recordXtime = recordXactCommitData->xtime; + recordXtime = recordXactCommitData->xact_time; } else if (record_info == XLOG_XACT_ABORT) { xl_xact_abort *recordXactAbortData; recordXactAbortData = (xl_xact_abort *) XLogRecGetData(record); - recordXtime = recordXactAbortData->xtime; + recordXtime = recordXactAbortData->xact_time; } else return false; @@ -4532,22 +4530,26 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis) if (recoveryStopAfter) ereport(LOG, (errmsg("recovery stopping after commit of transaction %u, time %s", - recoveryStopXid, str_time(recoveryStopTime)))); + recoveryStopXid, + timestamptz_to_str(recoveryStopTime)))); else ereport(LOG, (errmsg("recovery stopping before commit of transaction %u, time %s", - recoveryStopXid, str_time(recoveryStopTime)))); + recoveryStopXid, + timestamptz_to_str(recoveryStopTime)))); } else { if (recoveryStopAfter) ereport(LOG, (errmsg("recovery stopping after abort of transaction %u, time %s", - recoveryStopXid, str_time(recoveryStopTime)))); + recoveryStopXid, + timestamptz_to_str(recoveryStopTime)))); else ereport(LOG, (errmsg("recovery stopping before abort of transaction %u, time %s", - recoveryStopXid, str_time(recoveryStopTime)))); + recoveryStopXid, + timestamptz_to_str(recoveryStopTime)))); } } |