From f22c6f9237d02267071a2edab212bd398014d733 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 11 Aug 1998 18:38:07 +0000
Subject: [PATCH]     the  following  patch fixes a bug in the oracle
 compatibility     functions btrim() ltrim() and rtrim().

    The error was that the character after the set  was  included
    in the tests (ptr2 pointed to the character after the vardata
    part of set if no match found,  so  comparing  *ptr  or  *end
    against *ptr2 MAY match -> strip).


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being
right. # # Let's break this rule - forgive me.
# #======================================== jwieck@debis.com (Jan
Wieck) #
---
 src/backend/utils/adt/oracle_compat.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/backend/utils/adt/oracle_compat.c b/src/backend/utils/adt/oracle_compat.c
index d056652ed02..2297d3246c1 100644
--- a/src/backend/utils/adt/oracle_compat.c
+++ b/src/backend/utils/adt/oracle_compat.c
@@ -1,7 +1,7 @@
 /*
  *	Edmund Mergl <E.Mergl@bawue.de>
  *
- *	$Id: oracle_compat.c,v 1.14 1998/06/15 19:29:36 momjian Exp $
+ *	$Id: oracle_compat.c,v 1.15 1998/08/11 18:38:07 momjian Exp $
  *
  */
 
@@ -297,7 +297,7 @@ btrim(text *string, text *set)
 				break;
 			++ptr2;
 		}
-		if (*ptr != *ptr2)
+		if (ptr2 > end2)
 			break;
 		ptr++;
 		ptr2 = VARDATA(set);
@@ -316,7 +316,7 @@ btrim(text *string, text *set)
 				break;
 			++ptr2;
 		}
-		if (*end != *ptr2)
+		if (ptr2 > end2)
 			break;
 		--end;
 		ptr2 = VARDATA(set);
@@ -374,7 +374,7 @@ ltrim(text *string, text *set)
 				break;
 			++ptr2;
 		}
-		if (*ptr != *ptr2)
+		if (ptr2 > end2)
 			break;
 		ptr++;
 		ptr2 = VARDATA(set);
@@ -434,7 +434,7 @@ rtrim(text *string, text *set)
 				break;
 			++ptr2;
 		}
-		if (*ptr != *ptr2)
+		if (ptr2 > end2)
 			break;
 		--ptr;
 		ptr2 = VARDATA(set);
-- 
GitLab