MobilityDB 1.1
Data Structures | Macros | Typedefs | Functions | Variables
datetime.h File Reference
#include "utils/timestamp.h"
Include dependency graph for datetime.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  datetkn
 
struct  DynamicZoneAbbrev
 
struct  TimeZoneAbbrevTable
 

Macros

#define ABS_AFTER   21
 
#define ABS_BEFORE   20
 
#define AD   0
 
#define ADBC   18
 
#define AGO   19
 
#define AM   0
 
#define AMPM   9
 
#define BC   1
 
#define CENTURY   26
 
#define DA_D   "ad"
 
#define DAGO   "ago"
 
#define DATEORDER_DMY   1
 
#define DATEORDER_MDY   2
 
#define DATEORDER_YMD   0
 
#define DAY   3
 
#define DB_C   "bc"
 
#define DCENTURY   "century"
 
#define DCURRENT   "current"
 
#define DDAY   "day"
 
#define DDECADE   "decade"
 
#define DECADE   25
 
#define DHOUR   "hour"
 
#define DMICROSEC   "usecond"
 
#define DMILLENNIUM   "millennium"
 
#define DMILLISEC   "msecond"
 
#define DMINUTE   "minute"
 
#define DMONTH   "month"
 
#define DOW   16
 
#define DOY   15
 
#define DQUARTER   "quarter"
 
#define DSECOND   "second"
 
#define DTERR_BAD_FORMAT   (-1)
 
#define DTERR_BAD_FORMAT   (-1)
 
#define DTERR_FIELD_OVERFLOW   (-2)
 
#define DTERR_FIELD_OVERFLOW   (-2)
 
#define DTERR_INTERVAL_OVERFLOW   (-4)
 
#define DTERR_INTERVAL_OVERFLOW   (-4)
 
#define DTERR_MD_FIELD_OVERFLOW   (-3) /* triggers hint about DateStyle */
 
#define DTERR_MD_FIELD_OVERFLOW   (-3) /* triggers hint about DateStyle */
 
#define DTERR_TZDISP_OVERFLOW   (-5)
 
#define DTERR_TZDISP_OVERFLOW   (-5)
 
#define DTIMEZONE   "timezone"
 
#define DTK_AGO   5
 
#define DTK_ALL_SECS_M   (DTK_M(SECOND) | DTK_M(MILLISECOND) | DTK_M(MICROSECOND))
 
#define DTK_CENTURY   27
 
#define DTK_DATE   2
 
#define DTK_DATE_M   (DTK_M(YEAR) | DTK_M(MONTH) | DTK_M(DAY))
 
#define DTK_DAY   21
 
#define DTK_DECADE   26
 
#define DTK_DELTA   17
 
#define DTK_DOW   32
 
#define DTK_DOY   33
 
#define DTK_EARLY   9
 
#define DTK_EPOCH   11
 
#define DTK_HOUR   20
 
#define DTK_ISODOW   37
 
#define DTK_ISOYEAR   36
 
#define DTK_JULIAN   31
 
#define DTK_LATE   10
 
#define DTK_M(t)   (0x01 << (t))
 
#define DTK_MICROSEC   30
 
#define DTK_MILLENNIUM   28
 
#define DTK_MILLISEC   29
 
#define DTK_MINUTE   19
 
#define DTK_MONTH   23
 
#define DTK_NOW   12
 
#define DTK_NUMBER   0
 
#define DTK_QUARTER   24
 
#define DTK_SECOND   18
 
#define DTK_SPECIAL   6
 
#define DTK_STRING   1
 
#define DTK_TIME   3
 
#define DTK_TIME_M   (DTK_M(HOUR) | DTK_M(MINUTE) | DTK_ALL_SECS_M)
 
#define DTK_TODAY   14
 
#define DTK_TOMORROW   15
 
#define DTK_TZ   4
 
#define DTK_TZ_HOUR   34
 
#define DTK_TZ_MINUTE   35
 
#define DTK_WEEK   22
 
#define DTK_YEAR   25
 
#define DTK_YESTERDAY   13
 
#define DTK_ZULU   16
 
#define DTZ   6 /* fixed-offset timezone abbrev, DST */
 
#define DTZMOD   28 /* "DST" as a separate word */
 
#define DWEEK   "week"
 
#define DYEAR   "year"
 
#define DYNTZ   7 /* dynamic timezone abbreviation */
 
#define EARLY   "-infinity"
 
#define EPOCH   "epoch"
 
#define FMODULO(t, q, u)
 
#define HOUR   10
 
#define HR24   2
 
#define IGNORE_DTF   8
 
#define INTERVAL_FULL_RANGE   (0x7FFF)
 
#define INTERVAL_MASK(b)   (1 << (b))
 
#define INTSTYLE_ISO_8601   3
 
#define INTSTYLE_POSTGRES   0
 
#define INTSTYLE_POSTGRES_VERBOSE   1
 
#define INTSTYLE_SQL_STANDARD   2
 
#define INVALID   "invalid"
 
#define isleap(y)   (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
 
#define ISODATE   22
 
#define ISOTIME   23
 
#define JULIAN   4
 
#define LATE   "infinity"
 
#define MAX_INTERVAL_PRECISION   6
 
#define MAXDATEFIELDS   25
 
#define MAXDATELEN   128
 
#define MAXTZLEN   10
 
#define MICROSECOND   14
 
#define MILLENNIUM   27
 
#define MILLISECOND   13
 
#define MINUTE   11
 
#define MONTH   1
 
#define NOW   "now"
 
#define PM   1
 
#define RESERV   0
 
#define SECOND   12
 
#define TMODULO(t, q, u)
 
#define TODAY   "today"
 
#define TOKMAXLEN   10
 
#define TOMORROW   "tomorrow"
 
#define TZ   5 /* fixed-offset timezone abbreviation */
 
#define UNITS   17
 
#define UNKNOWN_FIELD   31
 
#define USE_GERMAN_DATES   3
 
#define USE_ISO_DATES   1
 
#define USE_POSTGRES_DATES   0
 
#define USE_SQL_DATES   2
 
#define USE_XSD_DATES   4
 
#define WEEK   24
 
#define YEAR   2
 
#define YESTERDAY   "yesterday"
 
#define ZULU   "zulu"
 

Typedefs

typedef struct DynamicZoneAbbrev DynamicZoneAbbrev
 
typedef int32 fsec_t
 
typedef struct TimeZoneAbbrevTable TimeZoneAbbrevTable
 

Functions

void AdjustTimestampForTypmod (Timestamp *time, int32 typmod)
 
bool AdjustTimestampForTypmodError (Timestamp *time, int32 typmod, bool *error)
 
bool CheckDateTokenTables (void)
 
TimeZoneAbbrevTableConvertTimeZoneAbbrevs (struct tzEntry *abbrevs, int n)
 
int date2j (int year, int month, int day)
 
void DateTimeParseError (int dterr, const char *str, const char *datatype) pg_attribute_noreturn()
 
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)
 
int DecodeSpecial (int field, char *lowtoken, int *val)
 
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)
 
int DetermineTimeZoneAbbrevOffsetTS (TimestampTz ts, const char *abbr, pg_tz *tzp, int *isdst)
 
int DetermineTimeZoneOffset (struct pg_tm *tm, pg_tz *tzp)
 
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 EncodeSpecialTimestamp (Timestamp dt, char *str)
 
void EncodeTimeOnly (struct pg_tm *tm, fsec_t fsec, bool print_tz, int tz, int style, char *str)
 
void GetCurrentDateTime (struct pg_tm *tm)
 
void GetCurrentTimeUsec (struct pg_tm *tm, fsec_t *fsec, int *tzp)
 
void InstallTimeZoneAbbrevs (TimeZoneAbbrevTable *tbl)
 
void j2date (int jd, int *year, int *month, int *day)
 
int j2day (int jd)
 
int ParseDateTime (const char *timestr, char *workbuf, size_t buflen, char **field, int *ftype, int maxfields, int *numfields)
 
int ValidateDate (int fmask, bool isjulian, bool is2digits, bool bc, struct pg_tm *tm)
 

Variables

int DateOrder
 
int DateStyle
 
const int day_tab [2][13]
 
const char *const days []
 
int IntervalStyle
 
const char *const months []