Fix in oracle_compat.c - Mailing list pgsql-hackers

From jwieck@debis.com (Jan Wieck)
Subject Fix in oracle_compat.c
Date
Msg-id m0z6FD3-000EBPC@orion.SAPserv.Hamburg.dsh.de
Whole thread Raw
Responses Re: [HACKERS] Fix in oracle_compat.c  (Bruce Momjian <maillist@candle.pha.pa.us>)
Re: [HACKERS] Fix in oracle_compat.c  (Bruce Momjian <maillist@candle.pha.pa.us>)
List pgsql-hackers
Hi,

    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) #


*** oracle_compat.c.orig    Tue Aug 11 16:07:48 1998
--- oracle_compat.c    Tue Aug 11 16:08:37 1998
***************
*** 297,303 ****
                  break;
              ++ptr2;
          }
!         if (*ptr != *ptr2)
              break;
          ptr++;
          ptr2 = VARDATA(set);
--- 297,303 ----
                  break;
              ++ptr2;
          }
!         if (ptr2 > end2)
              break;
          ptr++;
          ptr2 = VARDATA(set);
***************
*** 316,322 ****
                  break;
              ++ptr2;
          }
!         if (*end != *ptr2)
              break;
          --end;
          ptr2 = VARDATA(set);
--- 316,322 ----
                  break;
              ++ptr2;
          }
!         if (ptr2 > end2)
              break;
          --end;
          ptr2 = VARDATA(set);
***************
*** 374,380 ****
                  break;
              ++ptr2;
          }
!         if (*ptr != *ptr2)
              break;
          ptr++;
          ptr2 = VARDATA(set);
--- 374,380 ----
                  break;
              ++ptr2;
          }
!         if (ptr2 > end2)
              break;
          ptr++;
          ptr2 = VARDATA(set);
***************
*** 434,440 ****
                  break;
              ++ptr2;
          }
!         if (*ptr != *ptr2)
              break;
          --ptr;
          ptr2 = VARDATA(set);
--- 434,440 ----
                  break;
              ++ptr2;
          }
!         if (ptr2 > end2)
              break;
          --ptr;
          ptr2 = VARDATA(set);

pgsql-hackers by date:

Previous
From: The Hermit Hacker
Date:
Subject: Re: [HACKERS] 6.3.2. patch for functional indices
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Fix in oracle_compat.c