diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/interfaces/libpq/fe-trace.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/interfaces/libpq/fe-trace.c b/src/interfaces/libpq/fe-trace.c index 9a4595f5c87..51b01fd40e5 100644 --- a/src/interfaces/libpq/fe-trace.c +++ b/src/interfaces/libpq/fe-trace.c @@ -80,11 +80,20 @@ static void pqTraceFormatTimestamp(char *timestr, size_t ts_len) { struct timeval tval; + time_t now; gettimeofday(&tval, NULL); + + /* + * MSVC's implementation of timeval uses a long for tv_sec, however, + * localtime() expects a time_t pointer. Here we'll assign tv_sec to a + * local time_t variable so that we pass localtime() the correct pointer + * type. + */ + now = tval.tv_sec; strftime(timestr, ts_len, "%Y-%m-%d %H:%M:%S", - localtime(&tval.tv_sec)); + localtime(&now)); /* append microseconds */ snprintf(timestr + strlen(timestr), ts_len - strlen(timestr), ".%06u", (unsigned int) (tval.tv_usec)); |