Commit c9a38e86 authored by Arun Kuruvila's avatar Arun Kuruvila

Merge branch 'mysql-5.1' into mysql-5.5

parents c3870e08 fdae90dd
...@@ -1242,7 +1242,8 @@ static ulong get_access(TABLE *form, uint fieldnr, uint *next_field) ...@@ -1242,7 +1242,8 @@ static ulong get_access(TABLE *form, uint fieldnr, uint *next_field)
/* /*
Return a number which, if sorted 'desc', puts strings in this order: Return a number which, if sorted 'desc', puts strings in this order:
no wildcards no wildcards
wildcards strings containg wildcards and non-wildcard characters
single muilt-wildcard character('%')
empty string empty string
*/ */
...@@ -1259,7 +1260,16 @@ static ulong get_sort(uint count,...) ...@@ -1259,7 +1260,16 @@ static ulong get_sort(uint count,...)
{ {
char *start, *str= va_arg(args,char*); char *start, *str= va_arg(args,char*);
uint chars= 0; uint chars= 0;
uint wild_pos= 0; /* first wildcard position */ uint wild_pos= 0;
/*
wild_pos
0 if string is empty
1 if string is a single muilt-wildcard
character('%')
first wildcard position + 1 if string containg wildcards and
non-wildcard characters
*/
if ((start= str)) if ((start= str))
{ {
...@@ -1270,6 +1280,8 @@ static ulong get_sort(uint count,...) ...@@ -1270,6 +1280,8 @@ static ulong get_sort(uint count,...)
else if (*str == wild_many || *str == wild_one) else if (*str == wild_many || *str == wild_one)
{ {
wild_pos= (uint) (str - start) + 1; wild_pos= (uint) (str - start) + 1;
if (!(wild_pos == 1 && *str == wild_many && *(++str) == '\0'))
wild_pos++;
break; break;
} }
chars= 128; // Marker that chars existed chars= 128; // Marker that chars existed
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment