PostgreSQL Source Code: src/include/utils/date.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef DATE_H

15#define DATE_H

16

17#include <math.h>

18

22

24

26

27typedef struct

28{

29 TimeADT time;

30 int32 zone;

32

33

34

35

36#define DATEVAL_NOBEGIN ((DateADT) PG_INT32_MIN)

37#define DATEVAL_NOEND ((DateADT) PG_INT32_MAX)

38

39#define DATE_NOBEGIN(j) ((j) = DATEVAL_NOBEGIN)

40#define DATE_IS_NOBEGIN(j) ((j) == DATEVAL_NOBEGIN)

41#define DATE_NOEND(j) ((j) = DATEVAL_NOEND)

42#define DATE_IS_NOEND(j) ((j) == DATEVAL_NOEND)

43#define DATE_NOT_FINITE(j) (DATE_IS_NOBEGIN(j) || DATE_IS_NOEND(j))

44

45#define MAX_TIME_PRECISION 6

46

47

48

49

50

51

52

55{

57}

58

61{

63}

64

67{

69}

70

71static inline Datum

73{

75}

76

77static inline Datum

79{

81}

82

83static inline Datum

85{

87}

88

89#define PG_GETARG_DATEADT(n) DatumGetDateADT(PG_GETARG_DATUM(n))

90#define PG_GETARG_TIMEADT(n) DatumGetTimeADT(PG_GETARG_DATUM(n))

91#define PG_GETARG_TIMETZADT_P(n) DatumGetTimeTzADTP(PG_GETARG_DATUM(n))

92

93#define PG_RETURN_DATEADT(x) return DateADTGetDatum(x)

94#define PG_RETURN_TIMEADT(x) return TimeADTGetDatum(x)

95#define PG_RETURN_TIMETZADT_P(x) return TimeTzADTPGetDatum(x)

96

97

98

105

117

118#endif

int32 date_cmp_timestamp_internal(DateADT dateVal, Timestamp dt2)

int timetz2tm(TimeTzADT *time, struct pg_tm *tm, fsec_t *fsec, int *tzp)

static Datum DateADTGetDatum(DateADT X)

bool float_time_overflows(int hour, int min, double sec)

int32 anytime_typmod_check(bool istz, int32 typmod)

int tm2time(struct pg_tm *tm, fsec_t fsec, TimeADT *result)

TimeADT GetSQLLocalTime(int32 typmod)

int tm2timetz(struct pg_tm *tm, fsec_t fsec, int tz, TimeTzADT *result)

static TimeTzADT * DatumGetTimeTzADTP(Datum X)

bool time_overflows(int hour, int min, int sec, fsec_t fsec)

static DateADT DatumGetDateADT(Datum X)

DateADT GetSQLCurrentDate(void)

static TimeADT DatumGetTimeADT(Datum X)

void AdjustTimeForTypmod(TimeADT *time, int32 typmod)

static Datum TimeTzADTPGetDatum(const TimeTzADT *X)

TimestampTz date2timestamptz_opt_overflow(DateADT dateVal, int *overflow)

int time2tm(TimeADT time, struct pg_tm *tm, fsec_t *fsec)

void EncodeSpecialDate(DateADT dt, char *str)

Timestamp date2timestamp_opt_overflow(DateADT dateVal, int *overflow)

static Datum TimeADTGetDatum(TimeADT X)

int32 date_cmp_timestamptz_internal(DateADT dateVal, TimestampTz dt2)

double date2timestamp_no_overflow(DateADT dateVal)

TimeTzADT * GetSQLCurrentTime(int32 typmod)

Datum Int64GetDatum(int64 X)

static int64 DatumGetInt64(Datum X)

static Datum PointerGetDatum(const void *X)

static Pointer DatumGetPointer(Datum X)

static Datum Int32GetDatum(int32 X)

static int32 DatumGetInt32(Datum X)