From: <asf...@us...> - 2011-06-17 01:20:47
|
Revision: 53185 http://firebird.svn.sourceforge.net/firebird/?rev=53185&view=rev Author: asfernandes Date: 2011-06-17 01:20:41 +0000 (Fri, 17 Jun 2011) Log Message: ----------- Backported fix for CORE-3523 - SIMILAR TO: False matches on descending ranges. Modified Paths: -------------- firebird/branches/B2_5_Release/doc/WhatsNew firebird/branches/B2_5_Release/src/jrd/SimilarToMatcher.h Modified: firebird/branches/B2_5_Release/doc/WhatsNew =================================================================== --- firebird/branches/B2_5_Release/doc/WhatsNew 2011-06-17 01:06:27 UTC (rev 53184) +++ firebird/branches/B2_5_Release/doc/WhatsNew 2011-06-17 01:20:41 UTC (rev 53185) @@ -2,6 +2,11 @@ * v2.5.1 ************************** + * Bugfix CORE-3523 + SIMILAR TO: False matches on descending ranges. + Contributor(s): + Adriano dos Santos Fernandes <adrianosf at uol.com.br> + * Bugfix CORE-3512 Server hangs when trace is running Contributor(s): Modified: firebird/branches/B2_5_Release/src/jrd/SimilarToMatcher.h =================================================================== --- firebird/branches/B2_5_Release/src/jrd/SimilarToMatcher.h 2011-06-17 01:06:27 UTC (rev 53184) +++ firebird/branches/B2_5_Release/src/jrd/SimilarToMatcher.h 2011-06-17 01:20:41 UTC (rev 53185) @@ -850,22 +850,11 @@ len = charSet->substring(originalPatternLen, originalPatternStr, sizeof(c), c, patternPos - patternStart, 1); - if (textType->compare(rangeBuffer[previousRangeBufferCount], - &rangeBuffer[previousRangeBufferCount + 1], len, c) <= 0) - { - rangeBuffer.push(len); - rangeCount = rangeBuffer.getCount(); - memcpy(rangeBuffer.getBuffer(rangeCount + len) + rangeCount, &c, len); + rangeBuffer.push(len); + rangeCount = rangeBuffer.getCount(); + memcpy(rangeBuffer.getBuffer(rangeCount + len) + rangeCount, &c, len); - charsBuffer.push(*patternPos); - } - else - { - rangeBuffer.shrink(previousRangeBufferCount); - charsBuffer.pop(); - } - - ++patternPos; + charsBuffer.push(*patternPos++); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |