mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
Create crosstype comparison operators for date vs. timestamp and date
vs. timestamptz. This allows use of indexes for expressions like datecol >= date 'today' - interval '1 month' which were formerly not indexable without casting the righthand side down from timestamp to date.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.33 2003/12/25 03:36:24 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.34 2004/02/14 20:16:18 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -218,15 +218,15 @@ extern Datum interval_accum(PG_FUNCTION_ARGS);
|
||||
extern Datum interval_avg(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum timestamp_mi(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamp_pl_span(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamp_mi_span(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamp_pl_interval(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamp_mi_interval(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamp_age(PG_FUNCTION_ARGS);
|
||||
extern Datum overlaps_timestamp(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum timestamptz_text(PG_FUNCTION_ARGS);
|
||||
extern Datum text_timestamptz(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamptz_pl_span(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamptz_mi_span(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamptz_pl_interval(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamptz_mi_interval(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamptz_age(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamptz_trunc(PG_FUNCTION_ARGS);
|
||||
extern Datum timestamptz_part(PG_FUNCTION_ARGS);
|
||||
@@ -246,6 +246,10 @@ extern int tm2interval(struct tm * tm, fsec_t fsec, Interval *span);
|
||||
extern Timestamp SetEpochTimestamp(void);
|
||||
extern void GetEpochTime(struct tm * tm);
|
||||
|
||||
extern int timestamp_cmp_internal(Timestamp dt1, Timestamp dt2);
|
||||
/* timestamp comparison works for timestamptz also */
|
||||
#define timestamptz_cmp_internal(dt1,dt2) timestamp_cmp_internal(dt1, dt2)
|
||||
|
||||
extern void isoweek2date(int woy, int *year, int *mon, int *mday);
|
||||
extern int date2isoweek(int year, int mon, int mday);
|
||||
extern int date2isoyear(int year, int mon, int mday);
|
||||
|
||||
Reference in New Issue
Block a user