/* * reltimeout - converts the internal format to a reltime string */ Datum reltimeout(PG_FUNCTION_ARGS) { RelativeTime time = PG_GETARG_RELATIVETIME(0); char *result; struct pg_tm tt, *tm = &tt; char buf[MAXDATELEN + 1]; reltime2tm(time, tm); EncodeInterval(tm, 0, IntervalStyle, buf); result = pstrdup(buf); PG_RETURN_CSTRING(result); }
char * PGTYPESinterval_to_asc(interval * span) { struct tm tt, *tm = &tt; fsec_t fsec; char buf[MAXDATELEN + 1]; int IntervalStyle = INTSTYLE_POSTGRES_VERBOSE; if (interval2tm(*span, tm, &fsec) != 0) { errno = PGTYPES_INTVL_BAD_INTERVAL; return NULL; } EncodeInterval(tm, fsec, IntervalStyle, buf); return pgtypes_strdup(buf); }
char * PGTYPESinterval_to_asc(interval * span) { struct tm tt, *tm = &tt; fsec_t fsec; char buf[MAXDATELEN + 1]; int DateStyle = 0; if (interval2tm(*span, tm, &fsec) != 0) { errno = PGTYPES_INTVL_BAD_INTERVAL; return NULL; } if (EncodeInterval(tm, fsec, DateStyle, buf) != 0) { errno = PGTYPES_INTVL_BAD_INTERVAL; return NULL; } return pgtypes_strdup(buf); }