1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

Fix bug when repairing compressed MyISAM files

LOCATE() is now case sensitive
This commit is contained in:
monty@hundin.mysql.fi
2001-11-22 13:50:50 +02:00
parent c6b3afe2d7
commit 9209210d30
14 changed files with 125 additions and 55 deletions

View File

@@ -362,6 +362,37 @@ skipp:
return -1;
}
/*
Search after a string without regarding to case
This needs to be replaced when we have character sets per string
*/
int String::strstr_case(const String &s,uint32 offset)
{
if (s.length()+offset <= str_length)
{
if (!s.length())
return ((int) offset); // Empty string is always found
register const char *str = Ptr+offset;
register const char *search=s.ptr();
const char *end=Ptr+str_length-s.length()+1;
const char *search_end=s.ptr()+s.length();
skipp:
while (str != end)
{
if (my_sort_order[*str++] == my_sort_order[*search])
{
register char *i,*j;
i=(char*) str; j=(char*) search+1;
while (j != search_end)
if (my_sort_order[*i++] != my_sort_order[*j++]) goto skipp;
return (int) (str-Ptr) -1;
}
}
}
return -1;
}
/*
** Search string from end. Offset is offset to the end of string