mirror of https://github.com/postgres/postgres
Move timeofday() implementation out of nabstime.c.
nabstime.c is about to be removed, but timeofday() isn't related to the rest of the functionality therein, and some find it useful. Move to timestamp.c. Discussion: https://postgr.es/m/20181009192237.34wjp3nmw7oynmmr@alap3.anarazel.de https://postgr.es/m/20180928223240.kgwc4czzzekrpsid%40alap3.anarazel.de
This commit is contained in:
parent
e9edc1ba0b
commit
86896be60e
|
@ -1539,32 +1539,3 @@ bogus:
|
||||||
"tinterval", i_string)));
|
"tinterval", i_string)));
|
||||||
*i_start = *i_end = INVALID_ABSTIME; /* keep compiler quiet */
|
*i_start = *i_end = INVALID_ABSTIME; /* keep compiler quiet */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
*
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* timeofday -
|
|
||||||
* returns the current time as a text. similar to timenow() but returns
|
|
||||||
* seconds with more precision (up to microsecs). (I need this to compare
|
|
||||||
* the Wisconsin benchmark with Illustra whose TimeNow() shows current
|
|
||||||
* time with precision up to microsecs.) - ay 3/95
|
|
||||||
*/
|
|
||||||
Datum
|
|
||||||
timeofday(PG_FUNCTION_ARGS)
|
|
||||||
{
|
|
||||||
struct timeval tp;
|
|
||||||
char templ[128];
|
|
||||||
char buf[128];
|
|
||||||
pg_time_t tt;
|
|
||||||
|
|
||||||
gettimeofday(&tp, NULL);
|
|
||||||
tt = (pg_time_t) tp.tv_sec;
|
|
||||||
pg_strftime(templ, sizeof(templ), "%a %b %d %H:%M:%S.%%06d %Y %Z",
|
|
||||||
pg_localtime(&tt, session_timezone));
|
|
||||||
snprintf(buf, sizeof(buf), templ, tp.tv_usec);
|
|
||||||
|
|
||||||
PG_RETURN_TEXT_P(cstring_to_text(buf));
|
|
||||||
}
|
|
||||||
|
|
|
@ -1609,6 +1609,26 @@ GetSQLLocalTimestamp(int32 typmod)
|
||||||
return ts;
|
return ts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* timeofday(*) -- returns the current time as a text.
|
||||||
|
*/
|
||||||
|
Datum
|
||||||
|
timeofday(PG_FUNCTION_ARGS)
|
||||||
|
{
|
||||||
|
struct timeval tp;
|
||||||
|
char templ[128];
|
||||||
|
char buf[128];
|
||||||
|
pg_time_t tt;
|
||||||
|
|
||||||
|
gettimeofday(&tp, NULL);
|
||||||
|
tt = (pg_time_t) tp.tv_sec;
|
||||||
|
pg_strftime(templ, sizeof(templ), "%a %b %d %H:%M:%S.%%06d %Y %Z",
|
||||||
|
pg_localtime(&tt, session_timezone));
|
||||||
|
snprintf(buf, sizeof(buf), templ, tp.tv_usec);
|
||||||
|
|
||||||
|
PG_RETURN_TEXT_P(cstring_to_text(buf));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TimestampDifference -- convert the difference between two timestamps
|
* TimestampDifference -- convert the difference between two timestamps
|
||||||
* into integer seconds and microseconds
|
* into integer seconds and microseconds
|
||||||
|
|
Loading…
Reference in New Issue