mirror of
https://github.com/postgres/postgres.git
synced 2025-08-05 07:41:25 +03:00
Fix compiler warning in fe-trace.c for MSVC
It seems that in MSVC timeval's tv_sec field is of type long. localtime() takes a time_t pointer. Since long is 32-bit even on 64-bit builds in MSVC, passing a long pointer instead of the correct time_t pointer generated a compiler warning. Fix that. Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CAApHDvoRG25X_=ZCGSPb4KN_j2iu=G2uXsRSg8NBZeuhkOSETg@mail.gmail.com
This commit is contained in:
@@ -80,11 +80,20 @@ static void
|
|||||||
pqTraceFormatTimestamp(char *timestr, size_t ts_len)
|
pqTraceFormatTimestamp(char *timestr, size_t ts_len)
|
||||||
{
|
{
|
||||||
struct timeval tval;
|
struct timeval tval;
|
||||||
|
time_t now;
|
||||||
|
|
||||||
gettimeofday(&tval, NULL);
|
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,
|
strftime(timestr, ts_len,
|
||||||
"%Y-%m-%d %H:%M:%S",
|
"%Y-%m-%d %H:%M:%S",
|
||||||
localtime(&tval.tv_sec));
|
localtime(&now));
|
||||||
/* append microseconds */
|
/* append microseconds */
|
||||||
snprintf(timestr + strlen(timestr), ts_len - strlen(timestr),
|
snprintf(timestr + strlen(timestr), ts_len - strlen(timestr),
|
||||||
".%06u", (unsigned int) (tval.tv_usec));
|
".%06u", (unsigned int) (tval.tv_usec));
|
||||||
|
Reference in New Issue
Block a user