>>>>> "Dino" == Dino <dino@stripped> writes:
Dino> I am a user "that desperately need a new feature that is found only" in
Dino> 3.22.23 release.
Dino> select * from table where 'e' like 'é'
Dino> Where can I download it?
You have to wait a couple of days until I have tested 3.23 properly!
Dino> or who knows what should I change in sql/sql_string.cc to put that feature
Dino> working?
Dino> Thanks
You could try the included patch...
Regards,
Monty
*** sql_string.cc Thu May 13 15:45:23 1999
--- ../sql-3.22/sql_string.cc Wed Jun 2 13:59:01 1999
***************
*** 442,453 ****
** 1 if matched with wildcard
*/
- #ifdef LIKE_CMP_TOUPPER
- #define likeconv(A) toupper(A)
- #else
- #define likeconv(A) my_sort_order[(uchar) (A)]
- #endif
-
static int wild_case_compare(const char *str,const char *strend,
const char *wildstr,const char *wildend,
char escape)
--- 427,432 ----
***************
*** 478,484 ****
wildstr += l;
} else
#endif
! if (str == strend || likeconv(*wildstr++) != likeconv(*str++))
return(1); // No match
if (wildstr == wildend)
return (str != strend); // Match if both are at end
--- 457,463 ----
wildstr += l;
} else
#endif
! if (str == strend || toupper(*wildstr++) != toupper(*str++))
return(1); // No match
if (wildstr == wildend)
return (str != strend); // Match if both are at end
***************
*** 529,535 ****
#endif
INC_PTR(wildstr,wildend); // This is compared trough cmp
#if !defined(USE_BIG5CODE)
! cmp=likeconv(cmp);
#endif
do
{
--- 508,514 ----
#endif
INC_PTR(wildstr,wildend); // This is compared trough cmp
#if !defined(USE_BIG5CODE)
! cmp=toupper(cmp);
#endif
do
{
***************
*** 548,554 ****
}
else if (str+1 != strend && isbig5code(*str,*(str+1)) && *str != cmp)
str++; // Skip extra shar
! else if (likeconv(*str) == likeconv(cmp))
{
str++;
break; // Found it
--- 527,533 ----
}
else if (str+1 != strend && isbig5code(*str,*(str+1)) && *str != cmp)
str++; // Skip extra shar
! else if (toupper(*str) == toupper(cmp))
{
str++;
break; // Found it
***************
*** 570,576 ****
break;
}
}
! else if (!ismbchar(str, strend) && likeconv(*str) == cmp)
{
str++;
break;
--- 549,555 ----
break;
}
}
! else if (!ismbchar(str, strend) && toupper(*str) == cmp)
{
str++;
break;
***************
*** 578,584 ****
INC_PTR(str, strend);
}
#else
! while (str != strend && likeconv(*str) != cmp)
str++;
if (str++ == strend) return (result);
#endif
--- 557,563 ----
INC_PTR(str, strend);
}
#else
! while (str != strend && toupper(*str) != cmp)
str++;
if (str++ == strend) return (result);
#endif