From 8fe55efd7b88bc88f730fae72f177423edf755ac Mon Sep 17 00:00:00 2001
From: "Thomas G. Lockhart" <lockhart@fourpalms.org>
Date: Thu, 9 Oct 1997 05:02:17 +0000
Subject: [PATCH] Support special values 'now', 'current', etc on output.

---
 src/backend/utils/adt/timestamp.c | 48 ++++++++++++++++---------------
 1 file changed, 25 insertions(+), 23 deletions(-)

diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index 691886658e1..fde86061cb6 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -29,13 +29,33 @@ timestamp_out(time_t timestamp)
 	char		zone[MAXDATELEN + 1],
 			   *tzn = zone;
 
-	abstime2tm(timestamp, &tz, tm, tzn);
-	EncodeDateTime(tm, fsec, &tz, &tzn, USE_ISO_DATES, buf);
-
+	switch (timestamp)
+	{
+		case EPOCH_ABSTIME:
+			strcpy(buf, EPOCH);
+			break;
+		case INVALID_ABSTIME:
+			strcpy(buf, INVALID);
+			break;
+		case CURRENT_ABSTIME:
+			strcpy(buf, DCURRENT);
+			break;
+		case NOEND_ABSTIME:
+			strcpy(buf, LATE);
+			break;
+		case NOSTART_ABSTIME:
+			strcpy(buf, EARLY);
+			break;
+		default:
+			abstime2tm(timestamp, &tz, tm, tzn);
+			EncodeDateTime(tm, fsec, &tz, &tzn, USE_ISO_DATES, buf);
+			break;
+	}
+ 
 	result = palloc(strlen(buf) + 1);
 	strcpy(result, buf);
 	return result;
-}
+} /* timestamp_out() */
 
 time_t
 now(void)
@@ -49,58 +69,40 @@ now(void)
 bool
 timestampeq(time_t t1, time_t t2)
 {
-#if FALSE
-	return(t1 == t2);
-#endif
 	return(abstimeeq(t1,t2));
 }
 
 bool
 timestampne(time_t t1, time_t t2)
 {
-#if FALSE
-	return(t1 != t2);
-#endif
 	return(abstimene(t1,t2));
 }
 
 bool
 timestamplt(time_t t1, time_t t2)
 {
-#if FALSE
-	return(t1 > t2);
-#endif
 	return(abstimelt(t1,t2));
 }
 
 bool
 timestampgt(time_t t1, time_t t2)
 {
-#if FALSE
-	return(t1 < t2);
-#endif
 	return(abstimegt(t1,t2));
 }
 
 bool
 timestample(time_t t1, time_t t2)
 {
-#if FALSE
-	return(t1 >= t2);
-#endif
 	return(abstimele(t1,t2));
 }
 
 bool
 timestampge(time_t t1, time_t t2)
 {
-#if FALSE
-	return(t1 <= t2);
-#endif
 	return(abstimege(t1,t2));
 }
 
-DateTime   *
+DateTime *
 timestamp_datetime(time_t timestamp)
 {
 	DateTime   *result;
-- 
GitLab