Commit f573ee08 authored by unknown's avatar unknown
Browse files

Unicode collation algorithm: contraction support.

E.g. 'Ch' is treated as a separate letter in Czech,
not as a combination of C+h.

parent a86e6f17
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -206,6 +206,7 @@ typedef struct charset_info_st
  uchar    *to_lower;
  uchar    *to_upper;
  uchar    *sort_order;
  uint16   *contractions;
  uint16   **sort_order_big;
  uint16      *tab_to_uni;
  MY_UNI_IDX  *tab_from_uni;
+10 −0
Original line number Diff line number Diff line
@@ -33,6 +33,11 @@ extern CHARSET_INFO my_charset_ucs2_estonian_uca_ci;
extern CHARSET_INFO my_charset_ucs2_spanish_uca_ci;
extern CHARSET_INFO my_charset_ucs2_swedish_uca_ci;
extern CHARSET_INFO my_charset_ucs2_turkish_uca_ci;
extern CHARSET_INFO my_charset_ucs2_czech_uca_ci;
extern CHARSET_INFO my_charset_ucs2_danish_uca_ci;
extern CHARSET_INFO my_charset_ucs2_lithuanian_uca_ci;
extern CHARSET_INFO my_charset_ucs2_slovak_uca_ci;
extern CHARSET_INFO my_charset_ucs2_spanish2_uca_ci;
#endif

my_bool init_compiled_charsets(myf flags __attribute__((unused)))
@@ -97,6 +102,11 @@ my_bool init_compiled_charsets(myf flags __attribute__((unused)))
  add_compiled_collation(&my_charset_ucs2_spanish_uca_ci);
  add_compiled_collation(&my_charset_ucs2_swedish_uca_ci);
  add_compiled_collation(&my_charset_ucs2_turkish_uca_ci);
  add_compiled_collation(&my_charset_ucs2_czech_uca_ci);
  add_compiled_collation(&my_charset_ucs2_danish_uca_ci);
  add_compiled_collation(&my_charset_ucs2_lithuanian_uca_ci);
  add_compiled_collation(&my_charset_ucs2_slovak_uca_ci);
  add_compiled_collation(&my_charset_ucs2_spanish2_uca_ci);
#endif

#ifdef HAVE_CHARSET_ujis
+2 −1
Original line number Diff line number Diff line
@@ -6300,7 +6300,6 @@ static MY_CHARSET_HANDLER my_charset_big5_handler=
  my_long10_to_str_8bit,
  my_longlong10_to_str_8bit,
  my_fill_8bit,
    
  my_strntol_8bit,
  my_strntoul_8bit,
  my_strntoll_8bit,
@@ -6321,6 +6320,7 @@ CHARSET_INFO my_charset_big5_chinese_ci=
    to_lower_big5,
    to_upper_big5,
    sort_order_big5,
    NULL,		/* contractions */
    NULL,		/* sort_order_big*/
    NULL,		/* tab_to_uni   */
    NULL,		/* tab_from_uni */
@@ -6348,6 +6348,7 @@ CHARSET_INFO my_charset_big5_bin=
    to_lower_big5,
    to_upper_big5,
    sort_order_big5,
    NULL,		/* contractions */
    NULL,		/* sort_order_big*/
    NULL,		/* tab_to_uni   */
    NULL,		/* tab_from_uni */
+2 −1
Original line number Diff line number Diff line
@@ -395,9 +395,10 @@ CHARSET_INFO my_charset_bin =
    bin_char_array,		/* to_lower      */
    bin_char_array,		/* to_upper      */
    bin_char_array,		/* sort_order    */
    NULL,			/* contractions */
    NULL,			/* sort_order_big*/
    NULL,			/* tab_to_uni    */
    NULL,			/* tab_from_uni  */
    NULL,			/* sort_order_big*/
    NULL,			/* state_map    */
    NULL,			/* ident_map    */
    1,				/* strxfrm_multiply */
+1 −0
Original line number Diff line number Diff line
@@ -599,6 +599,7 @@ CHARSET_INFO my_charset_latin2_czech_ci =
    to_lower_czech,
    to_upper_czech,
    sort_order_czech,
    NULL,		/* contractions */
    NULL,		/* sort_order_big*/
    tab_8859_2_uni,	/* tab_to_uni   */
    idx_uni_8859_2,	/* tab_from_uni */
Loading