diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2007-04-30 21:01:53 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2007-04-30 21:01:53 +0000 |
| commit | c4320619635800a6116a02eee08b232c5abea266 (patch) | |
| tree | 3db9b7562baf005c9ccf4976c293a4328dfa9509 /src/include | |
| parent | 641912b4d17fd214a5e5bae4e7bb9ddbc28b144b (diff) | |
| download | postgresql-c4320619635800a6116a02eee08b232c5abea266.tar.gz | |
Change the timestamps recorded in transaction commit/abort xlog records
from time_t to TimestampTz representation. This provides full gettimeofday()
resolution of the timestamps, which might be useful when attempting to
do point-in-time recovery --- previously it was not possible to specify
the stop point with sub-second resolution. But mostly this is to get
rid of TimestampTz-to-time_t conversion overhead during commit. Per my
proposal of a day or two back.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/access/xact.h | 6 | ||||
| -rw-r--r-- | src/include/access/xlog_internal.h | 4 | ||||
| -rw-r--r-- | src/include/utils/timestamp.h | 4 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/include/access/xact.h b/src/include/access/xact.h index 8ec834676d..759eab1a3d 100644 --- a/src/include/access/xact.h +++ b/src/include/access/xact.h @@ -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/include/access/xact.h,v 1.86 2007/04/30 03:23:49 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/xact.h,v 1.87 2007/04/30 21:01:53 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -81,7 +81,7 @@ typedef void (*SubXactCallback) (SubXactEvent event, SubTransactionId mySubid, typedef struct xl_xact_commit { - time_t xtime; + TimestampTz xact_time; /* time of commit */ int nrels; /* number of RelFileNodes */ int nsubxacts; /* number of subtransaction XIDs */ /* Array of RelFileNode(s) to drop at commit */ @@ -93,7 +93,7 @@ typedef struct xl_xact_commit typedef struct xl_xact_abort { - time_t xtime; + TimestampTz xact_time; /* time of abort */ int nrels; /* number of RelFileNodes */ int nsubxacts; /* number of subtransaction XIDs */ /* Array of RelFileNode(s) to drop at abort */ diff --git a/src/include/access/xlog_internal.h b/src/include/access/xlog_internal.h index e2ff478149..cc9c6070bc 100644 --- a/src/include/access/xlog_internal.h +++ b/src/include/access/xlog_internal.h @@ -11,7 +11,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/xlog_internal.h,v 1.19 2007/03/03 20:02:27 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/xlog_internal.h,v 1.20 2007/04/30 21:01:53 tgl Exp $ */ #ifndef XLOG_INTERNAL_H #define XLOG_INTERNAL_H @@ -71,7 +71,7 @@ typedef struct XLogContRecord /* * Each page of XLOG file has a header like this: */ -#define XLOG_PAGE_MAGIC 0xD05F /* can be used as WAL version indicator */ +#define XLOG_PAGE_MAGIC 0xD061 /* can be used as WAL version indicator */ typedef struct XLogPageHeaderData { diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h index 594cd61e88..5923c35493 100644 --- a/src/include/utils/timestamp.h +++ b/src/include/utils/timestamp.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.68 2007/04/30 03:23:49 tgl Exp $ + * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.69 2007/04/30 21:01:53 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -318,6 +318,8 @@ extern bool TimestampDifferenceExceeds(TimestampTz start_time, extern TimestampTz time_t_to_timestamptz(time_t tm); extern time_t timestamptz_to_time_t(TimestampTz t); +extern const char *timestamptz_to_str(TimestampTz t); + extern int tm2timestamp(struct pg_tm * tm, fsec_t fsec, int *tzp, Timestamp *dt); extern int timestamp2tm(Timestamp dt, int *tzp, struct pg_tm * tm, fsec_t *fsec, char **tzn, pg_tz *attimezone); |
