Fix in oracle_compat.c
От | jwieck@debis.com (Jan Wieck) |
---|---|
Тема | Fix in oracle_compat.c |
Дата | |
Msg-id | m0z6FD3-000EBPC@orion.SAPserv.Hamburg.dsh.de обсуждение исходный текст |
Ответы |
Re: [HACKERS] Fix in oracle_compat.c
Re: [HACKERS] Fix in oracle_compat.c |
Список | 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 по дате отправления: