mirror of
https://github.com/MariaDB/server.git
synced 2025-08-31 22:22:30 +03:00
Persian collation, contibuted by Jody McIntyre
This commit is contained in:
@@ -6657,6 +6657,42 @@ static const char roman[]= /* i.e. Classical Latin */
|
||||
"& I << j <<< J "
|
||||
"& V << u <<< U ";
|
||||
|
||||
/*
|
||||
Persian collation support was provided by
|
||||
Jody McIntyre <mysql@modernduck.com>
|
||||
|
||||
To: internals@lists.mysql.com
|
||||
Subject: Persian UTF8 collation support
|
||||
Date: 17.08.2004
|
||||
|
||||
Contraction is not implemented. Some implementations do perform
|
||||
contraction but others do not, and it is able to sort all my test
|
||||
strings correctly.
|
||||
|
||||
Jody.
|
||||
*/
|
||||
static const char persian[]=
|
||||
"& \\u066D < \\u064E < \\uFE76 < \\uFE77 < \\u0650 < \\uFE7A < \\uFE7B"
|
||||
" < \\u064F < \\uFE78 < \\uFE79 < \\u064B < \\uFE70 < \\uFE71"
|
||||
" < \\u064D < \\uFE74 < \\u064C < \\uFE72"
|
||||
"& \\uFE7F < \\u0653 < \\u0654 < \\u0655 < \\u0670"
|
||||
"& \\u0669 < \\u0622 < \\u0627 < \\u0671 < \\u0621 < \\u0623 < \\u0625"
|
||||
" < \\u0624 < \\u0626"
|
||||
"& \\u0642 < \\u06A9 < \\u0643"
|
||||
"& \\u0648 < \\u0647 < \\u0629 < \\u06C0 < \\u06CC < \\u0649 < \\u064A"
|
||||
"& \\uFE80 < \\uFE81 < \\uFE82 < \\uFE8D < \\uFE8E < \\uFB50 < \\uFB51"
|
||||
" < \\uFE80 < \\uFE83 < \\uFE84 < \\uFE87 < \\uFE88 < \\uFE85"
|
||||
" < \\uFE86 < \\u0689 < \\u068A"
|
||||
"& \\uFEAE < \\uFDFC"
|
||||
"& \\uFED8 < \\uFB8E < \\uFB8F < \\uFB90 < \\uFB91 < \\uFED9 < \\uFEDA"
|
||||
" < \\uFEDB < \\uFEDC"
|
||||
"& \\uFEEE < \\uFEE9 < \\uFEEA < \\uFEEB < \\uFEEC < \\uFE93 < \\uFE94"
|
||||
" < \\uFBA4 < \\uFBA5 < \\uFBFC < \\uFBFD < \\uFBFE < \\uFBFF"
|
||||
" < \\uFEEF < \\uFEF0 < \\uFEF1 < \\uFEF2 < \\uFEF3 < \\uFEF4"
|
||||
" < \\uFEF5 < \\uFEF6 < \\uFEF7 < \\uFEF8 < \\uFEF9 < \\uFEFA"
|
||||
" < \\uFEFB < \\uFEFC";
|
||||
|
||||
|
||||
/*
|
||||
Unicode Collation Algorithm:
|
||||
Collation element (weight) scanner,
|
||||
@@ -7671,7 +7707,7 @@ static int my_coll_rule_parse(MY_COLL_RULE *rule, size_t mitems,
|
||||
return (size_t) nitems;
|
||||
}
|
||||
|
||||
#define MY_MAX_COLL_RULE 64
|
||||
#define MY_MAX_COLL_RULE 128
|
||||
|
||||
/*
|
||||
This function copies an UCS2 collation from
|
||||
@@ -8360,6 +8396,35 @@ CHARSET_INFO my_charset_ucs2_roman_uca_ci=
|
||||
&my_collation_ucs2_uca_handler
|
||||
};
|
||||
|
||||
|
||||
CHARSET_INFO my_charset_ucs2_persian_uca_ci=
|
||||
{
|
||||
144,0,0, /* number */
|
||||
MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE,
|
||||
"ucs2", /* cs name */
|
||||
"ucs2_persian_ci", /* name */
|
||||
"", /* comment */
|
||||
persian, /* tailoring */
|
||||
NULL, /* ctype */
|
||||
NULL, /* to_lower */
|
||||
NULL, /* to_upper */
|
||||
NULL, /* sort_order */
|
||||
NULL, /* contractions */
|
||||
NULL, /* sort_order_big*/
|
||||
NULL, /* tab_to_uni */
|
||||
NULL, /* tab_from_uni */
|
||||
NULL, /* state_map */
|
||||
NULL, /* ident_map */
|
||||
8, /* strxfrm_multiply */
|
||||
2, /* mbminlen */
|
||||
2, /* mbmaxlen */
|
||||
9, /* min_sort_char */
|
||||
0xFFFF, /* max_sort_char */
|
||||
&my_charset_ucs2_handler,
|
||||
&my_collation_ucs2_uca_handler
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -8838,4 +8903,32 @@ CHARSET_INFO my_charset_utf8_roman_uca_ci=
|
||||
&my_charset_utf8_handler,
|
||||
&my_collation_any_uca_handler
|
||||
};
|
||||
|
||||
CHARSET_INFO my_charset_utf8_persian_uca_ci=
|
||||
{
|
||||
208,0,0, /* number */
|
||||
MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE,
|
||||
"utf8", /* cs name */
|
||||
"utf8_persian_ci", /* name */
|
||||
"", /* comment */
|
||||
persian, /* tailoring */
|
||||
ctype_utf8, /* ctype */
|
||||
NULL, /* to_lower */
|
||||
NULL, /* to_upper */
|
||||
NULL, /* sort_order */
|
||||
NULL, /* contractions */
|
||||
NULL, /* sort_order_big*/
|
||||
NULL, /* tab_to_uni */
|
||||
NULL, /* tab_from_uni */
|
||||
NULL, /* state_map */
|
||||
NULL, /* ident_map */
|
||||
8, /* strxfrm_multiply */
|
||||
1, /* mbminlen */
|
||||
2, /* mbmaxlen */
|
||||
9, /* min_sort_char */
|
||||
0xFFFF, /* max_sort_char */
|
||||
&my_charset_utf8_handler,
|
||||
&my_collation_any_uca_handler
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user