From 930329c0948cacc4c17a1d2a6cab14228a3ef6ba Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 23 Mar 2021 11:54:43 -0400
Subject: [PATCH] plural squash commit

---
 src/backend/utils/adt/datetime.c          |  4 ++--
 src/interfaces/ecpg/pgtypeslib/interval.c |  4 ++--
 src/interfaces/libpq/fe-print.c           |  4 ++--
 src/test/regress/expected/interval.out    | 22 +++++++++++-----------
 4 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index 350b0c55ea..889077f55c 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -4190,7 +4190,7 @@ AddPostgresIntPart(char *cp, int value, const char *units,
 			(*is_before && value > 0) ? "+" : "",
 			value,
 			units,
-			(value != 1) ? "s" : "");
+			(abs(value) != 1) ? "s" : "");
 
 	/*
 	 * Each nonzero field sets is_before for (only) the next one.  This is a
@@ -4216,7 +4216,7 @@ AddVerboseIntPart(char *cp, int value, const char *units,
 	}
 	else if (*is_before)
 		value = -value;
-	sprintf(cp, " %d %s%s", value, units, (value == 1) ? "" : "s");
+	sprintf(cp, " %d %s%s", value, units, (abs(value) == 1) ? "" : "s");
 	*is_zero = false;
 	return cp + strlen(cp);
 }
diff --git a/src/interfaces/ecpg/pgtypeslib/interval.c b/src/interfaces/ecpg/pgtypeslib/interval.c
index 48ba50bbce..82196dfe80 100644
--- a/src/interfaces/ecpg/pgtypeslib/interval.c
+++ b/src/interfaces/ecpg/pgtypeslib/interval.c
@@ -694,7 +694,7 @@ AddVerboseIntPart(char *cp, int value, const char *units,
 	}
 	else if (*is_before)
 		value = -value;
-	sprintf(cp, " %d %s%s", value, units, (value == 1) ? "" : "s");
+	sprintf(cp, " %d %s%s", value, units, (abs(value) == 1) ? "" : "s");
 	*is_zero = false;
 	return cp + strlen(cp);
 }
@@ -711,7 +711,7 @@ AddPostgresIntPart(char *cp, int value, const char *units,
 			(*is_before && value > 0) ? "+" : "",
 			value,
 			units,
-			(value != 1) ? "s" : "");
+			(abs(value) != 1) ? "s" : "");
 
 	/*
 	 * Each nonzero field sets is_before for (only) the next one.  This is a
diff --git a/src/interfaces/libpq/fe-print.c b/src/interfaces/libpq/fe-print.c
index 94219b1825..af19b3c0a3 100644
--- a/src/interfaces/libpq/fe-print.c
+++ b/src/interfaces/libpq/fe-print.c
@@ -303,7 +303,7 @@ PQprint(FILE *fout, const PGresult *res, const PQprintOpt *po)
 		}
 		if (po->header && !po->html3)
 			fprintf(fout, "(%d row%s)\n\n", PQntuples(res),
-					(PQntuples(res) == 1) ? "" : "s");
+					(abs(PQntuples(res)) == 1) ? "" : "s");
 		if (po->html3 && !po->expanded)
 			fputs("</table>\n", fout);
 		free(fieldMax);
@@ -662,7 +662,7 @@ PQdisplayTuples(const PGresult *res,
 
 	if (!quiet)
 		fprintf(fp, "\nQuery returned %d row%s.\n", PQntuples(res),
-				(PQntuples(res) == 1) ? "" : "s");
+				(abs(PQntuples(res)) == 1) ? "" : "s");
 
 	fflush(fp);
 
diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out
index acc353a0dc..c5ffa9f2cc 100644
--- a/src/test/regress/expected/interval.out
+++ b/src/test/regress/expected/interval.out
@@ -23,15 +23,15 @@ SELECT INTERVAL '-08:00' AS "Eight hours";
 (1 row)
 
 SELECT INTERVAL '-1 +02:03' AS "22 hours ago...";
-  22 hours ago...  
--------------------
- -1 days +02:03:00
+ 22 hours ago...  
+------------------
+ -1 day +02:03:00
 (1 row)
 
 SELECT INTERVAL '-1 days +02:03' AS "22 hours ago...";
-  22 hours ago...  
--------------------
- -1 days +02:03:00
+ 22 hours ago...  
+------------------
+ -1 day +02:03:00
 (1 row)
 
 SELECT INTERVAL '1.5 weeks' AS "Ten days twelve hours";
@@ -288,7 +288,7 @@ FROM INTERVAL_MULDIV_TBL;
               product               
 ------------------------------------
  1 year 12 days 122:24:00
- -1 years -12 days +93:36:00
+ -1 year -12 days +93:36:00
  -3 days -14:24:00
  2 mons 13 days 01:22:28.8
  -10 mons +120 days 37:28:21.6567
@@ -317,7 +317,7 @@ FROM INTERVAL_MULDIV_TBL;
 ----------------------------------
  4 mons 4 days 40:48:00
  -4 mons -4 days +31:12:00
- -1 days -04:48:00
+ -1 day -04:48:00
  25 days -15:32:30.4
  -3 mons +30 days 12:29:27.2189
  12 days
@@ -785,9 +785,9 @@ SELECT  interval '+1 -1:00:00',
         interval '-1 +1:00:00',
         interval '+1-2 -3 +4:05:06.789',
         interval '-1-2 +3 -4:05:06.789';
-    interval     |     interval      |              interval               |                interval                
------------------+-------------------+-------------------------------------+----------------------------------------
- 1 day -01:00:00 | -1 days +01:00:00 | 1 year 2 mons -3 days +04:05:06.789 | -1 years -2 mons +3 days -04:05:06.789
+    interval     |     interval     |              interval               |               interval                
+-----------------+------------------+-------------------------------------+---------------------------------------
+ 1 day -01:00:00 | -1 day +01:00:00 | 1 year 2 mons -3 days +04:05:06.789 | -1 year -2 mons +3 days -04:05:06.789
 (1 row)
 
 -- test output of couple non-standard interval values in the sql style
-- 
2.20.1

