summaryrefslogtreecommitdiff
path: root/src/include/utils
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-02-08 09:33:02 -0500
committerRobert Haas <rhaas@postgresql.org>2012-02-08 09:33:37 -0500
commitc13897983a0006e658fb7c6410d72ca59fb87136 (patch)
tree4e228cac44cab1c1e80173511578ff248346a204 /src/include/utils
parent1a01560cbb78ff363fc7d70298328aa23f05bfb5 (diff)
Add transform functions for various temporal typmod coercisions.
This enables ALTER TABLE to skip table and index rebuilds in some cases. Noah Misch, with trivial changes by me.
Diffstat (limited to 'src/include/utils')
-rw-r--r--src/include/utils/date.h1
-rw-r--r--src/include/utils/datetime.h3
-rw-r--r--src/include/utils/timestamp.h2
3 files changed, 6 insertions, 0 deletions
diff --git a/src/include/utils/date.h b/src/include/utils/date.h
index 124efcf8a07..8cdd9bc84f5 100644
--- a/src/include/utils/date.h
+++ b/src/include/utils/date.h
@@ -154,6 +154,7 @@ extern Datum time_recv(PG_FUNCTION_ARGS);
extern Datum time_send(PG_FUNCTION_ARGS);
extern Datum timetypmodin(PG_FUNCTION_ARGS);
extern Datum timetypmodout(PG_FUNCTION_ARGS);
+extern Datum time_transform(PG_FUNCTION_ARGS);
extern Datum time_scale(PG_FUNCTION_ARGS);
extern Datum time_eq(PG_FUNCTION_ARGS);
extern Datum time_ne(PG_FUNCTION_ARGS);
diff --git a/src/include/utils/datetime.h b/src/include/utils/datetime.h
index 29d7b25119d..358e2a67b02 100644
--- a/src/include/utils/datetime.h
+++ b/src/include/utils/datetime.h
@@ -16,6 +16,7 @@
#ifndef DATETIME_H
#define DATETIME_H
+#include "nodes/nodes.h"
#include "utils/timestamp.h"
/* this struct is declared in utils/tzparser.h: */
@@ -298,6 +299,8 @@ extern int DecodeUnits(int field, char *lowtoken, int *val);
extern int j2day(int jd);
+extern Node *TemporalTransform(int32 max_precis, Node *node);
+
extern bool CheckDateTokenTables(void);
extern void ConvertTimeZoneAbbrevs(TimeZoneAbbrevTable *tbl,
diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h
index 22d1c04c95b..2eae95efac1 100644
--- a/src/include/utils/timestamp.h
+++ b/src/include/utils/timestamp.h
@@ -100,6 +100,7 @@ extern Datum timestamp_recv(PG_FUNCTION_ARGS);
extern Datum timestamp_send(PG_FUNCTION_ARGS);
extern Datum timestamptypmodin(PG_FUNCTION_ARGS);
extern Datum timestamptypmodout(PG_FUNCTION_ARGS);
+extern Datum timestamp_transform(PG_FUNCTION_ARGS);
extern Datum timestamp_scale(PG_FUNCTION_ARGS);
extern Datum timestamp_eq(PG_FUNCTION_ARGS);
extern Datum timestamp_ne(PG_FUNCTION_ARGS);
@@ -136,6 +137,7 @@ extern Datum interval_recv(PG_FUNCTION_ARGS);
extern Datum interval_send(PG_FUNCTION_ARGS);
extern Datum intervaltypmodin(PG_FUNCTION_ARGS);
extern Datum intervaltypmodout(PG_FUNCTION_ARGS);
+extern Datum interval_transform(PG_FUNCTION_ARGS);
extern Datum interval_scale(PG_FUNCTION_ARGS);
extern Datum interval_eq(PG_FUNCTION_ARGS);
extern Datum interval_ne(PG_FUNCTION_ARGS);