Commit 10ce930c authored by unknown's avatar unknown
Browse files

UTF8 UCA based collations.

parent 25e262a0
Loading
Loading
Loading
Loading
+33 −1
Original line number Diff line number Diff line
@@ -40,6 +40,24 @@ extern CHARSET_INFO my_charset_ucs2_slovak_uca_ci;
extern CHARSET_INFO my_charset_ucs2_spanish2_uca_ci;
#endif

#ifdef HAVE_CHARSET_utf8
extern CHARSET_INFO my_charset_utf8_general_uca_ci;
extern CHARSET_INFO my_charset_utf8_icelandic_uca_ci;
extern CHARSET_INFO my_charset_utf8_latvian_uca_ci;
extern CHARSET_INFO my_charset_utf8_romanian_uca_ci;
extern CHARSET_INFO my_charset_utf8_slovenian_uca_ci;
extern CHARSET_INFO my_charset_utf8_polish_uca_ci;
extern CHARSET_INFO my_charset_utf8_estonian_uca_ci;
extern CHARSET_INFO my_charset_utf8_spanish_uca_ci;
extern CHARSET_INFO my_charset_utf8_swedish_uca_ci;
extern CHARSET_INFO my_charset_utf8_turkish_uca_ci;
extern CHARSET_INFO my_charset_utf8_czech_uca_ci;
extern CHARSET_INFO my_charset_utf8_danish_uca_ci;
extern CHARSET_INFO my_charset_utf8_lithuanian_uca_ci;
extern CHARSET_INFO my_charset_utf8_slovak_uca_ci;
extern CHARSET_INFO my_charset_utf8_spanish2_uca_ci;
#endif

my_bool init_compiled_charsets(myf flags __attribute__((unused)))
{
  CHARSET_INFO *cs;
@@ -92,7 +110,6 @@ my_bool init_compiled_charsets(myf flags __attribute__((unused)))
  add_compiled_collation(&my_charset_ucs2_general_ci);
  add_compiled_collation(&my_charset_ucs2_bin);
  add_compiled_collation(&my_charset_ucs2_general_uca);
  add_compiled_collation(&my_charset_ucs2_general_uca);
  add_compiled_collation(&my_charset_ucs2_icelandic_uca_ci);
  add_compiled_collation(&my_charset_ucs2_latvian_uca_ci);
  add_compiled_collation(&my_charset_ucs2_romanian_uca_ci);
@@ -117,6 +134,21 @@ my_bool init_compiled_charsets(myf flags __attribute__((unused)))
#ifdef HAVE_CHARSET_utf8
  add_compiled_collation(&my_charset_utf8_general_ci);
  add_compiled_collation(&my_charset_utf8_bin);
  add_compiled_collation(&my_charset_utf8_general_uca_ci);
  add_compiled_collation(&my_charset_utf8_icelandic_uca_ci);
  add_compiled_collation(&my_charset_utf8_latvian_uca_ci);
  add_compiled_collation(&my_charset_utf8_romanian_uca_ci);
  add_compiled_collation(&my_charset_utf8_slovenian_uca_ci);
  add_compiled_collation(&my_charset_utf8_polish_uca_ci);
  add_compiled_collation(&my_charset_utf8_estonian_uca_ci);
  add_compiled_collation(&my_charset_utf8_spanish_uca_ci);
  add_compiled_collation(&my_charset_utf8_swedish_uca_ci);
  add_compiled_collation(&my_charset_utf8_turkish_uca_ci);
  add_compiled_collation(&my_charset_utf8_czech_uca_ci);
  add_compiled_collation(&my_charset_utf8_danish_uca_ci);
  add_compiled_collation(&my_charset_utf8_lithuanian_uca_ci);
  add_compiled_collation(&my_charset_utf8_slovak_uca_ci);
  add_compiled_collation(&my_charset_utf8_spanish2_uca_ci);
#endif

  /* Copy compiled charsets */
+701 −51

File changed.

Preview size limit exceeded, changes collapsed.

+3 −4
Original line number Diff line number Diff line
@@ -2057,7 +2057,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
    my_hash_sort_utf8
};

static MY_CHARSET_HANDLER my_charset_handler=
MY_CHARSET_HANDLER my_charset_utf8_handler=
{
    NULL,		/* init */
    my_ismbchar_utf8,
@@ -2109,7 +2109,7 @@ CHARSET_INFO my_charset_utf8_general_ci=
    3,			/* mbmaxlen     */
    0,			/* min_sort_char */
    255,		/* max_sort_char */
    &my_charset_handler,
    &my_charset_utf8_handler,
    &my_collation_ci_handler
};

@@ -2137,13 +2137,12 @@ CHARSET_INFO my_charset_utf8_bin=
    3,			/* mbmaxlen     */
    0,			/* min_sort_char */
    255,		/* max_sort_char */
    &my_charset_handler,
    &my_charset_utf8_handler,
    &my_collation_mb_bin_handler
};


#ifdef MY_TEST_UTF8

#include <stdio.h>

static void test_mb(CHARSET_INFO *cs, uchar *s)