MobilityDB 1.1
Macros | Functions | Variables
datetime.c File Reference
#include "postgres.h"
#include <limits.h>
#include "utils/timestamp_def.h"
#include "utils/datetime.h"
#include "utils/date.h"
Include dependency graph for datetime.c:

Macros

#define APPEND_CHAR(bufptr, end, newchar)
 

Functions

static char * AddISO8601IntPart (char *cp, int value, char units)
 
static char * AddPostgresIntPart (char *cp, int value, const char *units, bool *is_zero, bool *is_before)
 
static char * AddVerboseIntPart (char *cp, int value, const char *units, bool *is_zero, bool *is_before)
 
static void AdjustFractDays (double frac, struct pg_tm *tm, fsec_t *fsec, int scale)
 
static void AdjustFractSeconds (double frac, struct pg_tm *tm, fsec_t *fsec, int scale)
 
static char * AppendSeconds (char *cp, int sec, fsec_t fsec, int precision, bool fillzeros)
 
static char * AppendTimestampSeconds (char *cp, struct pg_tm *tm, fsec_t fsec)
 
static void ClearPgTm (struct pg_tm *tm, fsec_t *fsec)
 
int date2j (int y, int m, int d)
 
static const datetkndatebsearch (const char *key, const datetkn *base, int nel)
 
void DateTimeParseError (int dterr, const char *str, const char *datatype)
 
static int DecodeDate (char *str, int fmask, int *tmask, bool *is2digits, struct pg_tm *tm)
 
int DecodeDateTime (char **field, int *ftype, int nf, int *dtype, struct pg_tm *tm, fsec_t *fsec, int *tzp)
 
int DecodeInterval (char **field, int *ftype, int nf, int range, int *dtype, struct pg_tm *tm, fsec_t *fsec)
 
int DecodeISO8601Interval (char *str, int *dtype, struct pg_tm *tm, fsec_t *fsec)
 
static int DecodeNumber (int flen, char *field, bool haveTextMonth, int fmask, int *tmask, struct pg_tm *tm, fsec_t *fsec, bool *is2digits)
 
static int DecodeNumberField (int len, char *str, int fmask, int *tmask, struct pg_tm *tm, fsec_t *fsec, bool *is2digits)
 
int DecodeSpecial (int field, char *lowtoken, int *val)
 
static int DecodeTime (char *str, int fmask, int range, int *tmask, struct pg_tm *tm, fsec_t *fsec)
 
int DecodeTimeOnly (char **field, int *ftype, int nf, int *dtype, struct pg_tm *tm, fsec_t *fsec, int *tzp)
 
int DecodeTimezone (char *str, int *tzp)
 
int DecodeTimezoneAbbrev (int field, char *lowtoken, int *offset, pg_tz **tz)
 
int DecodeUnits (int field, char *lowtoken, int *val)
 
int DetermineTimeZoneAbbrevOffset (struct pg_tm *tm, const char *abbr, pg_tz *tzp)
 
static bool DetermineTimeZoneAbbrevOffsetInternal (pg_time_t t, const char *abbr, pg_tz *tzp, int *offset, int *isdst)
 
int DetermineTimeZoneOffset (struct pg_tm *tm, pg_tz *tzp)
 
static int DetermineTimeZoneOffsetInternal (struct pg_tm *tm, pg_tz *tzp, pg_time_t *tp)
 
void EncodeDateOnly (struct pg_tm *tm, int style, char *str)
 
void EncodeDateTime (struct pg_tm *tm, fsec_t fsec, bool print_tz, int tz, const char *tzn, int style, char *str)
 
void EncodeInterval (struct pg_tm *tm, fsec_t fsec, int style, char *str)
 
void EncodeSpecialDate (DateADT dt, char *str)
 
void EncodeTimeOnly (struct pg_tm *tm, fsec_t fsec, bool print_tz, int tz, int style, char *str)
 
static char * EncodeTimezone (char *str, int tz, int style)
 
static pg_tzFetchDynamicTimeZone (TimeZoneAbbrevTable *tbl, const datetkn *tp)
 
void GetCurrentDateTime (struct pg_tm *tm)
 
void GetCurrentTimeUsec (struct pg_tm *tm, fsec_t *fsec, int *tzp)
 
static int ISO8601IntegerWidth (char *fieldstart)
 
void j2date (int jd, int *year, int *month, int *day)
 
int j2day (int date)
 
int ParseDateTime (const char *timestr, char *workbuf, size_t buflen, char **field, int *ftype, int maxfields, int *numfields)
 
static int ParseFractionalSecond (char *cp, fsec_t *fsec)
 
static int ParseISO8601Number (char *str, char **endptr, int *ipart, double *fpart)
 
char * pg_ultostr (char *str, uint32 value)
 
char * pg_ultostr_zeropad (char *str, uint32 value, int32 minwidth)
 
int strtoint (const char *pg_restrict str, char **pg_restrict endptr, int base)
 
int ValidateDate (int fmask, bool isjulian, bool is2digits, bool bc, struct pg_tm *tm)
 

Variables

static const datetknabbrevcache [MAXDATEFIELDS] = {NULL}
 
static const datetkndatecache [MAXDATEFIELDS] = {NULL}
 
static const datetkn datetktbl []
 
const int day_tab [2][13]
 
const char *const days []
 
static const datetkndeltacache [MAXDATEFIELDS] = {NULL}
 
static const datetkn deltatktbl []
 
const char *const months []
 
static const int szdatetktbl = sizeof datetktbl / sizeof datetktbl[0]
 
static const int szdeltatktbl = sizeof deltatktbl / sizeof deltatktbl[0]
 
static TimeZoneAbbrevTablezoneabbrevtbl = NULL