diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index e4dfbcf4720..f6a214669c1 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -320,6 +320,13 @@ typedef struct SimpleStats double sum2; /* sum of squared values */ } SimpleStats; +/* + * The instr_time type is expensive when dealing with time arithmetic. Define + * a type to hold microseconds instead. Type int64 is good enough for about + * 584500 years. + */ +typedef int64 pg_time_usec_t; + /* * Data structure to hold various statistics: per-thread and per-script stats * are maintained and merged together. @@ -658,6 +665,24 @@ static const PsqlScanCallbacks pgbench_callbacks = { NULL, /* don't need get_variable functionality */ }; +static inline pg_time_usec_t +pg_time_now(void) +{ + instr_time now; + + INSTR_TIME_SET_CURRENT(now); + + return (pg_time_usec_t) INSTR_TIME_GET_MICROSEC(now); +} + +static inline void +pg_time_now_lazy(pg_time_usec_t *now) +{ + if ((*now) == 0) + (*now) = pg_time_now(); +} + +#define PG_TIME_GET_DOUBLE(t) (0.000001 * (t)) static void usage(void) diff --git a/src/include/portability/instr_time.h b/src/include/portability/instr_time.h index faf806a4410..39a4f0600e2 100644 --- a/src/include/portability/instr_time.h +++ b/src/include/portability/instr_time.h @@ -253,32 +253,4 @@ GetTimerFrequency(void) #define INSTR_TIME_SET_CURRENT_LAZY(t) \ (INSTR_TIME_IS_ZERO(t) ? INSTR_TIME_SET_CURRENT(t), true : false) -/* - * Simpler convenient interface - * - * The instr_time type is expensive when dealing with time arithmetic. - * Define a type to hold microseconds on top of this, suitable for - * benchmarking performance measures, eg in "pgbench". - * - * Type int64 is good enough for about 584500 years. - */ -typedef int64 pg_time_usec_t; - -static inline pg_time_usec_t -pg_time_now(void) -{ - instr_time now; - - INSTR_TIME_SET_CURRENT(now); - return (pg_time_usec_t) INSTR_TIME_GET_MICROSEC(now); -} - -static inline void -pg_time_now_lazy(pg_time_usec_t *now) -{ - if ((*now) == 0) - (*now) = pg_time_now(); -} - -#define PG_TIME_GET_DOUBLE(t) (0.000001 * (t)) #endif /* INSTR_TIME_H */