MySQL 8.0.29
Source Code Documentation
ctype-uca.cc File Reference
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <algorithm>
#include <bitset>
#include <iterator>
#include <map>
#include <utility>
#include "m_ctype.h"
#include "m_string.h"
#include "my_byteorder.h"
#include "my_compiler.h"
#include "my_inttypes.h"
#include "my_loglevel.h"
#include "my_macros.h"
#include "mysys_err.h"
#include "strings/mb_wc.h"
#include "strings/str_uca_type.h"
#include "strings/uca900_data.h"
#include "strings/uca900_ja_data.h"
#include "strings/uca900_zh_data.h"
#include "strings/uca_data.h"
#include "template_utils.h"

Classes

class  my_uca_scanner
 Unicode Collation Algorithm: Collation element (weight) scanner, for consequent scan of collations weights from a string. More...
 
struct  uca_scanner_any< Mb_wc >
 
class  uca_scanner_900< Mb_wc, LEVELS_FOR_COMPARE >
 
struct  trie_node_cmp
 
struct  MY_COLL_LEXEM
 
struct  MY_COLL_RULE
 
struct  MY_COLL_RULES
 
struct  MY_COLL_RULE_PARSER
 

Macros

#define MY_UTF8MB3   "utf8"
 
#define HANGUL_JAMO_MAX_LENGTH   3
 
#define MY_UCA_MAX_EXPANSION   6 /* Maximum expansion length */
 
#define MY_CS_UTF8MB3_UCA_FLAGS    (MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_UNICODE)
 
#define MY_CS_UTF8MB4_UCA_FLAGS    (MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_UNICODE | MY_CS_UNICODE_SUPPLEMENT)
 
#define MY_CS_UTF32_UCA_FLAGS
 
#define MY_CS_UTF16_UCA_FLAGS    (MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_UNICODE | MY_CS_NONASCII)
 

Typedefs

typedef enum my_coll_lexem_num_en my_coll_lexem_num
 

Enumerations

enum  my_coll_lexem_num_en {
  MY_COLL_LEXEM_EOF = 0 , MY_COLL_LEXEM_SHIFT = 1 , MY_COLL_LEXEM_RESET = 4 , MY_COLL_LEXEM_CHAR = 5 ,
  MY_COLL_LEXEM_ERROR = 6 , MY_COLL_LEXEM_OPTION = 7 , MY_COLL_LEXEM_EXTEND = 8 , MY_COLL_LEXEM_CONTEXT = 9
}
 
enum  my_coll_shift_method { my_shift_method_simple = 0 , my_shift_method_expand }
 

Functions

static void my_uca_add_contraction_flag (char *flags, my_wc_t wc, int flag)
 Mark a code point as a contraction part. More...
 
static bool my_uca_have_contractions (const MY_UCA_INFO *uca)
 Check if UCA level data has contractions. More...
 
static std::vector< MY_CONTRACTION >::const_iterator find_contraction_part_in_trie (const std::vector< MY_CONTRACTION > &cont_nodes, my_wc_t ch)
 
static std::vector< MY_CONTRACTION >::iterator find_contraction_part_in_trie (std::vector< MY_CONTRACTION > &cont_nodes, my_wc_t ch)
 
const uint16my_uca_contraction2_weight (const std::vector< MY_CONTRACTION > *cont_nodes, my_wc_t wc1, my_wc_t wc2)
 Find a contraction consisting of two code points and return its weight array. More...
 
static bool my_uca_can_be_previous_context_head (const char *flags, my_wc_t wc)
 Check if a code point can be previous context head. More...
 
static bool my_uca_can_be_previous_context_tail (const char *flags, my_wc_t wc)
 Check if a code point can be previous context tail. More...
 
static const uint16my_uca_contraction_weight (const std::vector< MY_CONTRACTION > *cont_nodes, const my_wc_t *wc, size_t len)
 Check if a string is a contraction of exactly the given length, and return its weight array on success. More...
 
static size_t my_wstrnlen (my_wc_t *s, size_t maxlen)
 Return length of a 0-terminated wide string, analogous to strnlen(). More...
 
static int my_decompose_hangul_syllable (my_wc_t syllable, my_wc_t *jamo)
 Check if a code point is Hangul syllable. More...
 
static uint16 change_zh_implicit (uint16 weight)
 
static bool is_hiragana_char (my_wc_t wc)
 
static bool is_katakana_char (my_wc_t wc)
 
static bool is_katakana_iteration (my_wc_t wc)
 
static bool is_hiragana_iteration (my_wc_t wc)
 
static bool is_ja_length_mark (my_wc_t wc)
 
static bool is_tertiary_weight_upper_case (uint16 weight)
 
template<class Scanner , int LEVELS_FOR_COMPARE, class Mb_wc >
static int my_strnncoll_uca (const CHARSET_INFO *cs, const Mb_wc mb_wc, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
 
static int my_space_weight (const CHARSET_INFO *cs)
 
static uint16my_char_weight_addr (MY_UCA_INFO *uca, my_wc_t wc)
 Helper function: Find address of weights of the given code point. More...
 
static uint16my_char_weight_addr_900 (MY_UCA_INFO *uca, my_wc_t wc)
 Helper function: Find address of weights of the given code point, for UCA 9.0.0 format. More...
 
template<class Mb_wc >
static int my_strnncollsp_uca (const CHARSET_INFO *cs, Mb_wc mb_wc, const uchar *s, size_t slen, const uchar *t, size_t tlen)
 
template<class Mb_wc >
static void my_hash_sort_uca (const CHARSET_INFO *cs, Mb_wc mb_wc, const uchar *s, size_t slen, uint64 *n1, uint64 *n2)
 
template<class Mb_wc >
static size_t my_strnxfrm_uca (const CHARSET_INFO *cs, Mb_wc mb_wc, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
 
static int my_uca_charcmp_900 (const CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
 
static int my_uca_charcmp (const CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
 
static int my_wildcmp_uca_impl (const CHARSET_INFO *cs, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many, int recurse_level)
 
static int my_strcasecmp_uca (const CHARSET_INFO *cs, const char *s, const char *t)
 
static int my_wildcmp_uca (const CHARSET_INFO *cs, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
 
static const char * my_coll_lexem_num_to_str (my_coll_lexem_num term)
 Convert collation customization lexem to string, for nice error reporting. More...
 
static void my_coll_lexem_init (MY_COLL_LEXEM *lexem, const char *str, const char *str_end)
 
static int lex_cmp (MY_COLL_LEXEM *lexem, const char *pattern, size_t patternlen)
 Compare lexem to string with length. More...
 
static void my_coll_lexem_print_error (MY_COLL_LEXEM *lexem, char *errstr, size_t errsize, const char *txt, const char *col_name)
 
static int ch2x (int ch)
 
static my_coll_lexem_num my_coll_lexem_next (MY_COLL_LEXEM *lexem)
 
static size_t my_coll_rule_reset_length (MY_COLL_RULE *r)
 Return length of the "reset" string of a rule. More...
 
static size_t my_coll_rule_shift_length (MY_COLL_RULE *r)
 Return length of the "shift" string of a rule. More...
 
static int my_coll_rule_expand (my_wc_t *wc, size_t limit, my_wc_t code)
 Append new character to the end of a 0-terminated wide string. More...
 
static void my_coll_rule_reset (MY_COLL_RULE *r)
 Initialize collation customization rule. More...
 
static int my_coll_rules_realloc (MY_COLL_RULES *rules, size_t n)
 Realloc rule array to a new size. More...
 
static int my_coll_rules_add (MY_COLL_RULES *rules, MY_COLL_RULE *rule)
 Append one new rule to a rule array. More...
 
static void my_coll_rule_shift_at_level (MY_COLL_RULE *r, int level)
 Apply difference at level. More...
 
static MY_COLL_LEXEMmy_coll_parser_curr (MY_COLL_RULE_PARSER *p)
 Current parser token. More...
 
static MY_COLL_LEXEMmy_coll_parser_next (MY_COLL_RULE_PARSER *p)
 Next parser token, to look ahead. More...
 
static int my_coll_parser_scan (MY_COLL_RULE_PARSER *p)
 Scan one token from the input stream. More...
 
static void my_coll_parser_init (MY_COLL_RULE_PARSER *p, MY_COLL_RULES *rules, const char *str, const char *str_end)
 Initialize collation customization parser. More...
 
static int my_coll_parser_expected_error (MY_COLL_RULE_PARSER *p, my_coll_lexem_num term)
 Display error when an unexpected token found. More...
 
static int my_coll_parser_too_long_error (MY_COLL_RULE_PARSER *p, const char *name)
 Display error when a too long character sequence is met. More...
 
static int my_coll_parser_scan_term (MY_COLL_RULE_PARSER *p, my_coll_lexem_num term)
 Scan the given lexem from input stream, or display "expected" error. More...
 
static int my_coll_parser_scan_setting (MY_COLL_RULE_PARSER *p)
 Scan a collation setting in brakets, for example UCA version. More...
 
static int my_coll_parser_scan_settings (MY_COLL_RULE_PARSER *p)
 Scan multiple collation settings. More...
 
static int my_coll_parser_scan_reset_before (MY_COLL_RULE_PARSER *p)
 Scan [before xxx] reset option. More...
 
static int my_coll_parser_scan_logical_position (MY_COLL_RULE_PARSER *p, my_wc_t *pwc, size_t limit)
 Scan logical position and add to the wide string. More...
 
static int my_coll_parser_scan_character_list (MY_COLL_RULE_PARSER *p, my_wc_t *pwc, size_t limit, const char *name)
 Scan character list. More...
 
static int my_coll_parser_scan_reset_sequence (MY_COLL_RULE_PARSER *p)
 Scan reset sequence. More...
 
static int my_coll_parser_scan_shift_sequence (MY_COLL_RULE_PARSER *p)
 Scan shift sequence. More...
 
static int my_coll_parser_scan_shift (MY_COLL_RULE_PARSER *p)
 Scan shift operator. More...
 
static int my_coll_parser_scan_rule (MY_COLL_RULE_PARSER *p)
 Scan one rule: reset followed by a number of shifts. More...
 
static int my_coll_parser_exec (MY_COLL_RULE_PARSER *p)
 Scan collation customization: settings followed by rules. More...
 
static int my_coll_rule_parse (MY_COLL_RULES *rules, const char *str, const char *str_end, const char *col_name)
 
static void spread_case_mask (uint16 *to, size_t to_stride, size_t tailored_ce_cnt, uint16 case_mask)
 
static void change_weight_if_case_first (CHARSET_INFO *cs, const MY_UCA_INFO *dst, MY_COLL_RULE *r, uint16 *to, size_t to_stride, size_t curr_len, size_t tailored_ce_cnt)
 
static size_t my_char_weight_put_900 (MY_UCA_INFO *dst, uint16 *to, size_t to_stride, size_t to_length, uint16 *to_num_ce, const MY_COLL_RULE *rule, size_t base_len)
 
static size_t my_char_weight_put (MY_UCA_INFO *dst, uint16 *to, size_t to_stride, size_t to_length, uint16 *to_num_ce, const MY_COLL_RULE *rule, size_t base_len, enum_uca_ver uca_ver)
 Helper function: Copies UCA weights for a given "uint" string to the given location. More...
 
static bool my_uca_copy_page (CHARSET_INFO *cs, MY_CHARSET_LOADER *loader, const MY_UCA_INFO *src, MY_UCA_INFO *dst, size_t page)
 Alloc new page and copy the default UCA weights. More...
 
static bool apply_primary_shift_900 (MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, MY_COLL_RULE *r, uint16 *to, size_t to_stride, size_t nweights, uint16 *const last_weight_ptr)
 
static bool apply_secondary_shift_900 (MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, MY_COLL_RULE *r, uint16 *to, size_t to_stride, size_t nweights, uint16 *const last_weight_ptr)
 
static bool apply_tertiary_shift_900 (MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, MY_COLL_RULE *r, uint16 *to, size_t to_stride, size_t nweights, uint16 *const last_weight_ptr)
 
static bool apply_shift_900 (MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, MY_COLL_RULE *r, uint16 *to, size_t to_stride, size_t nweights)
 
static bool apply_shift (MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, MY_COLL_RULE *r, int level, uint16 *to, size_t to_stride, size_t nweights)
 
static MY_CONTRACTIONadd_contraction_to_trie (std::vector< MY_CONTRACTION > *cont_nodes, MY_COLL_RULE *r)
 
static bool apply_one_rule (CHARSET_INFO *cs, MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, MY_COLL_RULE *r, int level, MY_UCA_INFO *dst)
 
static int check_rules (MY_CHARSET_LOADER *loader, const MY_COLL_RULES *rules, const MY_UCA_INFO *dst, const MY_UCA_INFO *src)
 Check if collation rules are valid, i.e. More...
 
static void synthesize_lengths_900 (uchar *lengths, const uint16 *const *weights, uint npages)
 
static void copy_ja_han_pages (const CHARSET_INFO *cs, MY_UCA_INFO *dst)
 
static void copy_zh_han_pages (MY_UCA_INFO *dst)
 
static my_wc_t convert_implicit_to_ch (uint16 first, uint16 second)
 
static void modify_all_zh_pages (Reorder_param *reorder_param, MY_UCA_INFO *dst, int npages)
 
static bool init_weight_level (CHARSET_INFO *cs, MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, int level, MY_UCA_INFO *dst, const MY_UCA_INFO *src, bool lengths_are_temporary)
 
static bool my_comp_in_rulelist (const MY_COLL_RULES *rules, my_wc_t wc)
 Check whether the composition character is already in rule list. More...
 
static bool my_compchar_is_normal_char (uint dec_ind)
 Check whether a composition character in the decomposition list is a normal character. More...
 
static bool my_compchar_is_normal_char (const Unidata_decomp *decomp)
 
static Unidata_decompget_decomposition (my_wc_t ch)
 
static Combining_markmy_find_combining_mark (my_wc_t code)
 
static bool my_is_inheritance_of_origin (const my_wc_t *origin_dec, const my_wc_t *dec_codes, my_wc_t *dec_diff)
 Check if a list of combining marks contains the whole list of origin decomposed combining marks. More...
 
static int my_coll_add_inherit_rules (MY_COLL_RULES *rules, MY_COLL_RULE *r, const Unidata_decomp *decomp_rec, std::bitset< array_elements(uni_dec)> *comp_added)
 Add new rules recersively if one rule's characters are in decomposition list. More...
 
static bool combining_mark_in_rulelist (const my_wc_t *dec_codes, const MY_COLL_RULE *r_start, const MY_COLL_RULE *r_end)
 
static int add_normalization_rules (const CHARSET_INFO *cs, MY_COLL_RULES *rules)
 
static int my_coll_check_rule_and_inherit (const CHARSET_INFO *cs, MY_COLL_RULES *rules)
 For every rule in rule list, check and add new rules if it is in decomposition list. More...
 
static void my_set_weight_rec (Reorder_wt_rec(&wt_rec)[2 *UCA_MAX_CHAR_GRP], int rec_ind, uint16 old_begin, uint16 old_end, uint16 new_begin, uint16 new_end)
 Helper function to store weight boundary values. More...
 
static void my_calc_char_grp_param (const CHARSET_INFO *cs, int &rec_ind)
 Calculate the reorder parameters for the character groups. More...
 
static void my_calc_char_grp_gap_param (CHARSET_INFO *cs, int &rec_ind)
 Calculate the reorder parameters for the gap between character groups. More...
 
static int my_prepare_reorder (CHARSET_INFO *cs)
 Prepare reorder parameters. More...
 
static void adjust_japanese_weight (CHARSET_INFO *cs, int rec_ind)
 
static bool my_prepare_coll_param (CHARSET_INFO *cs, MY_COLL_RULES *rules)
 Prepare parametric tailoring, like reorder, etc. More...
 
static bool create_tailoring (CHARSET_INFO *cs, MY_CHARSET_LOADER *loader)
 
static void my_coll_uninit_uca (CHARSET_INFO *cs)
 
static bool my_coll_init_uca (CHARSET_INFO *cs, MY_CHARSET_LOADER *loader)
 
static int my_strnncoll_any_uca (const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
 
static int my_strnncollsp_any_uca (const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
 
static void my_hash_sort_any_uca (const CHARSET_INFO *cs, const uchar *s, size_t slen, uint64 *n1, uint64 *n2)
 
static size_t my_strnxfrm_any_uca (const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
 
static int my_strnncoll_uca_900 (const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
 
static int my_strnncollsp_uca_900 (const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
 
template<class Mb_wc , int LEVELS_FOR_COMPARE>
static void my_hash_sort_uca_900_tmpl (const CHARSET_INFO *cs, const Mb_wc mb_wc, const uchar *s, size_t slen, uint64 *n1)
 
static void my_hash_sort_uca_900 (const CHARSET_INFO *cs, const uchar *s, size_t slen, uint64 *n1, uint64 *)
 
bool my_propagate_uca_900 (const CHARSET_INFO *cs, const uchar *str, size_t length)
 
template<class Mb_wc , int LEVELS_FOR_COMPARE>
static size_t my_strnxfrm_uca_900_tmpl (const CHARSET_INFO *cs, const Mb_wc mb_wc, uchar *dst, size_t dstlen, const uchar *src, size_t srclen, uint flags)
 
static size_t my_strnxfrm_uca_900 (const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
 
static size_t my_strnxfrmlen_uca_900 (const CHARSET_INFO *cs, size_t len)
 
static int my_strnncoll_ucs2_uca (const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
 
static int my_strnncollsp_ucs2_uca (const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
 
static void my_hash_sort_ucs2_uca (const CHARSET_INFO *cs, const uchar *s, size_t slen, uint64 *n1, uint64 *n2)
 
static size_t my_strnxfrm_ucs2_uca (const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
 
static size_t my_strnxfrm_utf8mb4_0900_bin (const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint nweights, const uchar *src, size_t srclen, uint flags)
 
static int my_strnncollsp_utf8mb4_0900_bin (const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
 

Variables

MY_UCA_INFO my_uca_v400
 
MY_UCA_INFO my_uca_v520
 
static const char german2 []
 
static const char icelandic []
 
static const char latvian []
 
static const char romanian []
 
static const char slovenian []
 
static const char polish []
 
static const char estonian []
 
static const char spanish [] = "& N < \\u00F1 <<< \\u00D1 "
 
static const char swedish []
 
static const char turkish []
 
static const char czech []
 
static const char danish []
 
static const char lithuanian []
 
static const char slovak []
 
static const char spanish2 []
 
static const char roman []
 
static const char persian []
 
static const char esperanto []
 
static const char hungarian []
 
static const char croatian []
 
static const char sinhala []
 
static const char vietnamese []
 
static const char de_pb_cldr_30 []
 
static const char is_cldr_30 []
 
static const char lv_cldr_30 []
 
static const char ro_cldr_30 []
 
static const char sl_cldr_30 []
 
static const char pl_cldr_30 []
 
static const char et_cldr_30 []
 
static const char sv_cldr_30 []
 
static const char tr_cldr_30 []
 
static const char cs_cldr_30 []
 
static const char da_cldr_30 []
 
static Coll_param da_coll_param = {nullptr, false, CASE_FIRST_UPPER}
 
static const char lt_cldr_30 []
 
static const char sk_cldr_30 []
 
static const char es_trad_cldr_30 []
 
static const char hu_cldr_30 []
 
static const char hr_cldr_30 []
 
static Reorder_param hr_reorder_param
 
static Coll_param hr_coll_param = {&hr_reorder_param, false, CASE_FIRST_OFF}
 
static const char vi_cldr_30 []
 
static Coll_param vi_coll_param = {nullptr, true, CASE_FIRST_OFF}
 
static Reorder_param ja_reorder_param
 
static Coll_param ja_coll_param
 
static Reorder_param zh_reorder_param
 
static Coll_param zh_coll_param = {&zh_reorder_param, false, CASE_FIRST_OFF}
 
static Reorder_param ru_reorder_param
 
static Coll_param ru_coll_param
 
static constexpr uint16 nochar [] = {0, 0}
 
MY_COLLATION_HANDLER my_collation_ucs2_uca_handler
 
CHARSET_INFO my_charset_ucs2_unicode_ci
 
CHARSET_INFO my_charset_ucs2_icelandic_uca_ci
 
CHARSET_INFO my_charset_ucs2_latvian_uca_ci
 
CHARSET_INFO my_charset_ucs2_romanian_uca_ci
 
CHARSET_INFO my_charset_ucs2_slovenian_uca_ci
 
CHARSET_INFO my_charset_ucs2_polish_uca_ci
 
CHARSET_INFO my_charset_ucs2_estonian_uca_ci
 
CHARSET_INFO my_charset_ucs2_spanish_uca_ci
 
CHARSET_INFO my_charset_ucs2_swedish_uca_ci
 
CHARSET_INFO my_charset_ucs2_turkish_uca_ci
 
CHARSET_INFO my_charset_ucs2_czech_uca_ci
 
CHARSET_INFO my_charset_ucs2_danish_uca_ci
 
CHARSET_INFO my_charset_ucs2_lithuanian_uca_ci
 
CHARSET_INFO my_charset_ucs2_slovak_uca_ci
 
CHARSET_INFO my_charset_ucs2_spanish2_uca_ci
 
CHARSET_INFO my_charset_ucs2_roman_uca_ci
 
CHARSET_INFO my_charset_ucs2_persian_uca_ci
 
CHARSET_INFO my_charset_ucs2_esperanto_uca_ci
 
CHARSET_INFO my_charset_ucs2_hungarian_uca_ci
 
CHARSET_INFO my_charset_ucs2_sinhala_uca_ci
 
CHARSET_INFO my_charset_ucs2_german2_uca_ci
 
CHARSET_INFO my_charset_ucs2_croatian_uca_ci
 
CHARSET_INFO my_charset_ucs2_unicode_520_ci
 
CHARSET_INFO my_charset_ucs2_vietnamese_ci
 
MY_COLLATION_HANDLER my_collation_any_uca_handler
 
MY_COLLATION_HANDLER my_collation_uca_900_handler
 
static const uchar ctype_utf8 []
 
MY_CHARSET_HANDLER my_charset_utf8_handler
 
CHARSET_INFO my_charset_utf8_unicode_ci
 
CHARSET_INFO my_charset_utf8_icelandic_uca_ci
 
CHARSET_INFO my_charset_utf8_latvian_uca_ci
 
CHARSET_INFO my_charset_utf8_romanian_uca_ci
 
CHARSET_INFO my_charset_utf8_slovenian_uca_ci
 
CHARSET_INFO my_charset_utf8_polish_uca_ci
 
CHARSET_INFO my_charset_utf8_estonian_uca_ci
 
CHARSET_INFO my_charset_utf8_spanish_uca_ci
 
CHARSET_INFO my_charset_utf8_swedish_uca_ci
 
CHARSET_INFO my_charset_utf8_turkish_uca_ci
 
CHARSET_INFO my_charset_utf8_czech_uca_ci
 
CHARSET_INFO my_charset_utf8_danish_uca_ci
 
CHARSET_INFO my_charset_utf8_lithuanian_uca_ci
 
CHARSET_INFO my_charset_utf8_slovak_uca_ci
 
CHARSET_INFO my_charset_utf8_spanish2_uca_ci
 
CHARSET_INFO my_charset_utf8_roman_uca_ci
 
CHARSET_INFO my_charset_utf8_persian_uca_ci
 
CHARSET_INFO my_charset_utf8_esperanto_uca_ci
 
CHARSET_INFO my_charset_utf8_hungarian_uca_ci
 
CHARSET_INFO my_charset_utf8_sinhala_uca_ci
 
CHARSET_INFO my_charset_utf8_german2_uca_ci
 
CHARSET_INFO my_charset_utf8_croatian_uca_ci
 
CHARSET_INFO my_charset_utf8_unicode_520_ci
 
CHARSET_INFO my_charset_utf8_vietnamese_ci
 
MY_CHARSET_HANDLER my_charset_utf8mb4_handler
 
CHARSET_INFO my_charset_utf8mb4_unicode_ci
 
CHARSET_INFO my_charset_utf8mb4_icelandic_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_latvian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_romanian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_slovenian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_polish_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_estonian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_spanish_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_swedish_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_turkish_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_czech_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_danish_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_lithuanian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_slovak_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_spanish2_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_roman_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_persian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_esperanto_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_hungarian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_sinhala_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_german2_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_croatian_uca_ci
 
CHARSET_INFO my_charset_utf8mb4_unicode_520_ci
 
CHARSET_INFO my_charset_utf8mb4_vietnamese_ci
 
MY_COLLATION_HANDLER my_collation_utf32_uca_handler
 
MY_CHARSET_HANDLER my_charset_utf32_handler
 
CHARSET_INFO my_charset_utf32_unicode_ci
 
CHARSET_INFO my_charset_utf32_icelandic_uca_ci
 
CHARSET_INFO my_charset_utf32_latvian_uca_ci
 
CHARSET_INFO my_charset_utf32_romanian_uca_ci
 
CHARSET_INFO my_charset_utf32_slovenian_uca_ci
 
CHARSET_INFO my_charset_utf32_polish_uca_ci
 
CHARSET_INFO my_charset_utf32_estonian_uca_ci
 
CHARSET_INFO my_charset_utf32_spanish_uca_ci
 
CHARSET_INFO my_charset_utf32_swedish_uca_ci
 
CHARSET_INFO my_charset_utf32_turkish_uca_ci
 
CHARSET_INFO my_charset_utf32_czech_uca_ci
 
CHARSET_INFO my_charset_utf32_danish_uca_ci
 
CHARSET_INFO my_charset_utf32_lithuanian_uca_ci
 
CHARSET_INFO my_charset_utf32_slovak_uca_ci
 
CHARSET_INFO my_charset_utf32_spanish2_uca_ci
 
CHARSET_INFO my_charset_utf32_roman_uca_ci
 
CHARSET_INFO my_charset_utf32_persian_uca_ci
 
CHARSET_INFO my_charset_utf32_esperanto_uca_ci
 
CHARSET_INFO my_charset_utf32_hungarian_uca_ci
 
CHARSET_INFO my_charset_utf32_sinhala_uca_ci
 
CHARSET_INFO my_charset_utf32_german2_uca_ci
 
CHARSET_INFO my_charset_utf32_croatian_uca_ci
 
CHARSET_INFO my_charset_utf32_unicode_520_ci
 
CHARSET_INFO my_charset_utf32_vietnamese_ci
 
MY_COLLATION_HANDLER my_collation_utf16_uca_handler
 
MY_CHARSET_HANDLER my_charset_utf16_handler
 
CHARSET_INFO my_charset_utf16_unicode_ci
 
CHARSET_INFO my_charset_utf16_icelandic_uca_ci
 
CHARSET_INFO my_charset_utf16_latvian_uca_ci
 
CHARSET_INFO my_charset_utf16_romanian_uca_ci
 
CHARSET_INFO my_charset_utf16_slovenian_uca_ci
 
CHARSET_INFO my_charset_utf16_polish_uca_ci
 
CHARSET_INFO my_charset_utf16_estonian_uca_ci
 
CHARSET_INFO my_charset_utf16_spanish_uca_ci
 
CHARSET_INFO my_charset_utf16_swedish_uca_ci
 
CHARSET_INFO my_charset_utf16_turkish_uca_ci
 
CHARSET_INFO my_charset_utf16_czech_uca_ci
 
CHARSET_INFO my_charset_utf16_danish_uca_ci
 
CHARSET_INFO my_charset_utf16_lithuanian_uca_ci
 
CHARSET_INFO my_charset_utf16_slovak_uca_ci
 
CHARSET_INFO my_charset_utf16_spanish2_uca_ci
 
CHARSET_INFO my_charset_utf16_roman_uca_ci
 
CHARSET_INFO my_charset_utf16_persian_uca_ci
 
CHARSET_INFO my_charset_utf16_esperanto_uca_ci
 
CHARSET_INFO my_charset_utf16_hungarian_uca_ci
 
CHARSET_INFO my_charset_utf16_sinhala_uca_ci
 
CHARSET_INFO my_charset_utf16_german2_uca_ci
 
CHARSET_INFO my_charset_utf16_croatian_uca_ci
 
CHARSET_INFO my_charset_utf16_unicode_520_ci
 
CHARSET_INFO my_charset_utf16_vietnamese_ci
 
MY_COLLATION_HANDLER my_collation_gb18030_uca_handler
 
static const uchar ctype_gb18030 [257]
 The array used for "type of characters" bit mask for each character. More...
 
MY_CHARSET_HANDLER my_charset_gb18030_uca_handler
 
CHARSET_INFO my_charset_gb18030_unicode_520_ci
 
CHARSET_INFO my_charset_utf8mb4_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_de_pb_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_is_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_lv_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_ro_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_sl_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_pl_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_et_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_es_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_sv_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_tr_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_cs_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_da_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_lt_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_sk_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_es_trad_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_la_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_eo_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_hu_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_hr_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_vi_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_de_pb_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_is_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_lv_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_ro_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_sl_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_pl_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_et_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_es_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_sv_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_tr_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_cs_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_da_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_lt_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_sk_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_es_trad_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_la_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_eo_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_hu_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_hr_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_vi_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_ja_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_ja_0900_as_cs_ks
 
CHARSET_INFO my_charset_utf8mb4_0900_as_ci
 
CHARSET_INFO my_charset_utf8mb4_ru_0900_ai_ci
 
CHARSET_INFO my_charset_utf8mb4_ru_0900_as_cs
 
CHARSET_INFO my_charset_utf8mb4_zh_0900_as_cs
 
static MY_COLLATION_HANDLER my_collation_utf8mb4_0900_bin_handler
 
CHARSET_INFO my_charset_utf8mb4_0900_bin
 

Macro Definition Documentation

◆ HANGUL_JAMO_MAX_LENGTH

#define HANGUL_JAMO_MAX_LENGTH   3

◆ MY_CS_UTF16_UCA_FLAGS

#define MY_CS_UTF16_UCA_FLAGS    (MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_UNICODE | MY_CS_NONASCII)

◆ MY_CS_UTF32_UCA_FLAGS

#define MY_CS_UTF32_UCA_FLAGS
Value:
MY_CS_UNICODE_SUPPLEMENT | MY_CS_NONASCII)
#define MY_CS_COMPILED
Definition: m_ctype.h:109
#define MY_CS_STRNXFRM
Definition: m_ctype.h:115
#define MY_CS_UNICODE
Definition: m_ctype.h:117
#define MY_CS_NONASCII
Definition: m_ctype.h:123

◆ MY_CS_UTF8MB3_UCA_FLAGS

#define MY_CS_UTF8MB3_UCA_FLAGS    (MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_UNICODE)

◆ MY_CS_UTF8MB4_UCA_FLAGS

#define MY_CS_UTF8MB4_UCA_FLAGS    (MY_CS_COMPILED | MY_CS_STRNXFRM | MY_CS_UNICODE | MY_CS_UNICODE_SUPPLEMENT)

◆ MY_UCA_MAX_EXPANSION

#define MY_UCA_MAX_EXPANSION   6 /* Maximum expansion length */

◆ MY_UTF8MB3

#define MY_UTF8MB3   "utf8"

Typedef Documentation

◆ my_coll_lexem_num

Enumeration Type Documentation

◆ my_coll_lexem_num_en

Enumerator
MY_COLL_LEXEM_EOF 
MY_COLL_LEXEM_SHIFT 
MY_COLL_LEXEM_RESET 
MY_COLL_LEXEM_CHAR 
MY_COLL_LEXEM_ERROR 
MY_COLL_LEXEM_OPTION 
MY_COLL_LEXEM_EXTEND 
MY_COLL_LEXEM_CONTEXT 

◆ my_coll_shift_method

Enumerator
my_shift_method_simple 
my_shift_method_expand 

Function Documentation

◆ add_contraction_to_trie()

static MY_CONTRACTION * add_contraction_to_trie ( std::vector< MY_CONTRACTION > *  cont_nodes,
MY_COLL_RULE r 
)
static

◆ add_normalization_rules()

static int add_normalization_rules ( const CHARSET_INFO cs,
MY_COLL_RULES rules 
)
static

◆ adjust_japanese_weight()

static void adjust_japanese_weight ( CHARSET_INFO cs,
int  rec_ind 
)
static

◆ apply_one_rule()

static bool apply_one_rule ( CHARSET_INFO cs,
MY_CHARSET_LOADER loader,
MY_COLL_RULES rules,
MY_COLL_RULE r,
int  level,
MY_UCA_INFO dst 
)
static

◆ apply_primary_shift_900()

static bool apply_primary_shift_900 ( MY_CHARSET_LOADER loader,
MY_COLL_RULES rules,
MY_COLL_RULE r,
uint16 to,
size_t  to_stride,
size_t  nweights,
uint16 *const  last_weight_ptr 
)
static

◆ apply_secondary_shift_900()

static bool apply_secondary_shift_900 ( MY_CHARSET_LOADER loader,
MY_COLL_RULES rules,
MY_COLL_RULE r,
uint16 to,
size_t  to_stride,
size_t  nweights,
uint16 *const  last_weight_ptr 
)
static

◆ apply_shift()

static bool apply_shift ( MY_CHARSET_LOADER loader,
MY_COLL_RULES rules,
MY_COLL_RULE r,
int  level,
uint16 to,
size_t  to_stride,
size_t  nweights 
)
static

◆ apply_shift_900()

static bool apply_shift_900 ( MY_CHARSET_LOADER loader,
MY_COLL_RULES rules,
MY_COLL_RULE r,
uint16 to,
size_t  to_stride,
size_t  nweights 
)
static

◆ apply_tertiary_shift_900()

static bool apply_tertiary_shift_900 ( MY_CHARSET_LOADER loader,
MY_COLL_RULES rules,
MY_COLL_RULE r,
uint16 to,
size_t  to_stride,
size_t  nweights,
uint16 *const  last_weight_ptr 
)
static

◆ ch2x()

static int ch2x ( int  ch)
static

◆ change_weight_if_case_first()

static void change_weight_if_case_first ( CHARSET_INFO cs,
const MY_UCA_INFO dst,
MY_COLL_RULE r,
uint16 to,
size_t  to_stride,
size_t  curr_len,
size_t  tailored_ce_cnt 
)
static

◆ change_zh_implicit()

static uint16 change_zh_implicit ( uint16  weight)
static

◆ check_rules()

static int check_rules ( MY_CHARSET_LOADER loader,
const MY_COLL_RULES rules,
const MY_UCA_INFO dst,
const MY_UCA_INFO src 
)
static

Check if collation rules are valid, i.e.

characters are not outside of the collation suported range.

◆ combining_mark_in_rulelist()

static bool combining_mark_in_rulelist ( const my_wc_t dec_codes,
const MY_COLL_RULE r_start,
const MY_COLL_RULE r_end 
)
static

◆ convert_implicit_to_ch()

static my_wc_t convert_implicit_to_ch ( uint16  first,
uint16  second 
)
inlinestatic

◆ copy_ja_han_pages()

static void copy_ja_han_pages ( const CHARSET_INFO cs,
MY_UCA_INFO dst 
)
static

◆ copy_zh_han_pages()

static void copy_zh_han_pages ( MY_UCA_INFO dst)
static

◆ create_tailoring()

static bool create_tailoring ( CHARSET_INFO cs,
MY_CHARSET_LOADER loader 
)
static

◆ find_contraction_part_in_trie() [1/2]

static std::vector< MY_CONTRACTION >::const_iterator find_contraction_part_in_trie ( const std::vector< MY_CONTRACTION > &  cont_nodes,
my_wc_t  ch 
)
static

◆ find_contraction_part_in_trie() [2/2]

static std::vector< MY_CONTRACTION >::iterator find_contraction_part_in_trie ( std::vector< MY_CONTRACTION > &  cont_nodes,
my_wc_t  ch 
)
static

◆ get_decomposition()

static Unidata_decomp * get_decomposition ( my_wc_t  ch)
static

◆ init_weight_level()

static bool init_weight_level ( CHARSET_INFO cs,
MY_CHARSET_LOADER loader,
MY_COLL_RULES rules,
int  level,
MY_UCA_INFO dst,
const MY_UCA_INFO src,
bool  lengths_are_temporary 
)
static

◆ is_hiragana_char()

static bool is_hiragana_char ( my_wc_t  wc)
inlinestatic

◆ is_hiragana_iteration()

static bool is_hiragana_iteration ( my_wc_t  wc)
inlinestatic

◆ is_ja_length_mark()

static bool is_ja_length_mark ( my_wc_t  wc)
inlinestatic

◆ is_katakana_char()

static bool is_katakana_char ( my_wc_t  wc)
inlinestatic

◆ is_katakana_iteration()

static bool is_katakana_iteration ( my_wc_t  wc)
inlinestatic

◆ is_tertiary_weight_upper_case()

static bool is_tertiary_weight_upper_case ( uint16  weight)
static

◆ lex_cmp()

static int lex_cmp ( MY_COLL_LEXEM lexem,
const char *  pattern,
size_t  patternlen 
)
static

Compare lexem to string with length.

Parameters
lexemlexem
patternstring
patternlenstring length
Return values
0if lexem is equal to string, non-0 otherwise.

◆ modify_all_zh_pages()

static void modify_all_zh_pages ( Reorder_param reorder_param,
MY_UCA_INFO dst,
int  npages 
)
static

◆ my_calc_char_grp_gap_param()

static void my_calc_char_grp_gap_param ( CHARSET_INFO cs,
int &  rec_ind 
)
static

Calculate the reorder parameters for the gap between character groups.

Parameters
csCharacter set info
rec_indThe position from where to store weight boundary

◆ my_calc_char_grp_param()

static void my_calc_char_grp_param ( const CHARSET_INFO cs,
int &  rec_ind 
)
static

Calculate the reorder parameters for the character groups.

Parameters
csCharacter set info
[out]rec_indThe position from where to store weight boundary

◆ my_char_weight_addr()

static uint16 * my_char_weight_addr ( MY_UCA_INFO uca,
my_wc_t  wc 
)
inlinestatic

Helper function: Find address of weights of the given code point.

Parameters
ucaPointer to UCA data
wccharacter Unicode code point
Returns
Weight array
Return values
pointerto weight array for the given code point, or nullptr if this page does not have implicit weights.

◆ my_char_weight_addr_900()

static uint16 * my_char_weight_addr_900 ( MY_UCA_INFO uca,
my_wc_t  wc 
)
inlinestatic

Helper function: Find address of weights of the given code point, for UCA 9.0.0 format.

Parameters
ucaPointer to UCA data
wccharacter Unicode code point
Returns
Weight array
Return values
pointerto weight array for the given code point, or nullptr if this page does not have implicit weights.

◆ my_char_weight_put()

static size_t my_char_weight_put ( MY_UCA_INFO dst,
uint16 to,
size_t  to_stride,
size_t  to_length,
uint16 to_num_ce,
const MY_COLL_RULE rule,
size_t  base_len,
enum_uca_ver  uca_ver 
)
static

Helper function: Copies UCA weights for a given "uint" string to the given location.

Parameters
dstdestination UCA weight data
todestination address
to_stridenumber of bytes between each successive weight in "to"
to_lengthsize of destination
to_num_cewhere to put the number of CEs generated
ruleThe rule that contains the characters whose weight are to copied
base_lenThe length of base character list
uca_verUCA version
Returns
number of weights put

◆ my_char_weight_put_900()

static size_t my_char_weight_put_900 ( MY_UCA_INFO dst,
uint16 to,
size_t  to_stride,
size_t  to_length,
uint16 to_num_ce,
const MY_COLL_RULE rule,
size_t  base_len 
)
static

◆ my_coll_add_inherit_rules()

static int my_coll_add_inherit_rules ( MY_COLL_RULES rules,
MY_COLL_RULE r,
const Unidata_decomp decomp_rec,
std::bitset< array_elements(uni_dec)> *  comp_added 
)
static

Add new rules recersively if one rule's characters are in decomposition list.

Parameters
rulesThe rule list
rThe rule to check
decomp_recThe decomposition of the character in rule.
comp_addedBitset which marks whether the comp character has been added to rule list.
Returns
1 Error adding new rules 0 Add rules successfully

◆ my_coll_check_rule_and_inherit()

static int my_coll_check_rule_and_inherit ( const CHARSET_INFO cs,
MY_COLL_RULES rules 
)
static

For every rule in rule list, check and add new rules if it is in decomposition list.

Parameters
csCharacter set info
rulesThe rule list
Returns
1 Error happens when adding new rule 0 Add rules successfully

◆ my_coll_init_uca()

static bool my_coll_init_uca ( CHARSET_INFO cs,
MY_CHARSET_LOADER loader 
)
static

◆ my_coll_lexem_init()

static void my_coll_lexem_init ( MY_COLL_LEXEM lexem,
const char *  str,
const char *  str_end 
)
static

◆ my_coll_lexem_next()

static my_coll_lexem_num my_coll_lexem_next ( MY_COLL_LEXEM lexem)
static

◆ my_coll_lexem_num_to_str()

static const char * my_coll_lexem_num_to_str ( my_coll_lexem_num  term)
static

Convert collation customization lexem to string, for nice error reporting.

Parameters
termlexem code
Returns
lexem name

◆ my_coll_lexem_print_error()

static void my_coll_lexem_print_error ( MY_COLL_LEXEM lexem,
char *  errstr,
size_t  errsize,
const char *  txt,
const char *  col_name 
)
static

◆ my_coll_parser_curr()

static MY_COLL_LEXEM * my_coll_parser_curr ( MY_COLL_RULE_PARSER p)
static

Current parser token.

Parameters
pCollation customization parser
Returns
Pointer to the current token

◆ my_coll_parser_exec()

static int my_coll_parser_exec ( MY_COLL_RULE_PARSER p)
static

Scan collation customization: settings followed by rules.

<collation customization> ::= [ <setting> ... ] [ <rule>... ]

Parameters
pCollation customization parser
Return values
0if collation customization expression was not scanned.
1if collation customization expression was scanned.

◆ my_coll_parser_expected_error()

static int my_coll_parser_expected_error ( MY_COLL_RULE_PARSER p,
my_coll_lexem_num  term 
)
static

Display error when an unexpected token found.

Parameters
pCollation customization parser
termWhich lexem was expected
Returns
0, to use in "return" and boolean expressions.

◆ my_coll_parser_init()

static void my_coll_parser_init ( MY_COLL_RULE_PARSER p,
MY_COLL_RULES rules,
const char *  str,
const char *  str_end 
)
static

Initialize collation customization parser.

Parameters
pCollation customization parser
rulesWhere to store rules
strBeginning of a collation customization sting
str_endEnd of the collation customizations string

◆ my_coll_parser_next()

static MY_COLL_LEXEM * my_coll_parser_next ( MY_COLL_RULE_PARSER p)
static

Next parser token, to look ahead.

Parameters
pCollation customization parser
Returns
Pointer to the next token

◆ my_coll_parser_scan()

static int my_coll_parser_scan ( MY_COLL_RULE_PARSER p)
static

Scan one token from the input stream.

Parameters
pCollation customization parser
Returns
1, for convenience, to use in logical expressions easier.

◆ my_coll_parser_scan_character_list()

static int my_coll_parser_scan_character_list ( MY_COLL_RULE_PARSER p,
my_wc_t pwc,
size_t  limit,
const char *  name 
)
static

Scan character list.

<character list> ::= CHAR [ CHAR... ]

Parameters
pCollation customization parser
pwcCharacter string to add code to
limitThe result string cannot be longer than 'limit' characters
nameE.g. "contraction", "expansion"
Return values
0if character sequence was not scanned.
1if character sequence was scanned.

◆ my_coll_parser_scan_logical_position()

static int my_coll_parser_scan_logical_position ( MY_COLL_RULE_PARSER p,
my_wc_t pwc,
size_t  limit 
)
static

Scan logical position and add to the wide string.

Parameters
pCollation customization parser
pwcWide string to add code to
limitThe result string cannot be longer than 'limit' characters
Return values
0if logical position was not scanned.
1if logical position was scanned.

◆ my_coll_parser_scan_reset_before()

static int my_coll_parser_scan_reset_before ( MY_COLL_RULE_PARSER p)
static

Scan [before xxx] reset option.

Parameters
pCollation customization parser
Return values
0if reset option was not scanned.
1if reset option was scanned.

◆ my_coll_parser_scan_reset_sequence()

static int my_coll_parser_scan_reset_sequence ( MY_COLL_RULE_PARSER p)
static

Scan reset sequence.

<reset sequence> ::= [ <reset before option> ] <character list> | [ <reset before option> ] <logical reset position>

Parameters
pCollation customization parser
Return values
0if reset sequence was not scanned.
1if reset sequence was scanned.

◆ my_coll_parser_scan_rule()

static int my_coll_parser_scan_rule ( MY_COLL_RULE_PARSER p)
static

Scan one rule: reset followed by a number of shifts.

<rule> ::= & <reset sequence> <shift> <shift sequence> [ { <shift> <shift sequence> }... ]

Parameters
pCollation customization parser
Return values
0if rule was not scanned.
1if rule was scanned.

◆ my_coll_parser_scan_setting()

static int my_coll_parser_scan_setting ( MY_COLL_RULE_PARSER p)
static

Scan a collation setting in brakets, for example UCA version.

Parameters
pCollation customization parser
Return values
0if setting was scanned.
1if setting was not scanned.

◆ my_coll_parser_scan_settings()

static int my_coll_parser_scan_settings ( MY_COLL_RULE_PARSER p)
static

Scan multiple collation settings.

Parameters
pCollation customization parser
Return values
0if no settings were scanned.
1if one or more settings were scanned.

◆ my_coll_parser_scan_shift()

static int my_coll_parser_scan_shift ( MY_COLL_RULE_PARSER p)
static

Scan shift operator.

<shift> ::= < | << | <<< | <<<< | =

Parameters
pCollation customization parser
Return values
0if shift operator was not scanned.
1if shift operator was scanned.

◆ my_coll_parser_scan_shift_sequence()

static int my_coll_parser_scan_shift_sequence ( MY_COLL_RULE_PARSER p)
static

Scan shift sequence.

<shift sequence> ::= <character list> [ / <character list> ] | <character list> [ | <character list> ]

Parameters
pCollation customization parser
Return values
0if shift sequence was not scanned.
1if shift sequence was scanned.

◆ my_coll_parser_scan_term()

static int my_coll_parser_scan_term ( MY_COLL_RULE_PARSER p,
my_coll_lexem_num  term 
)
static

Scan the given lexem from input stream, or display "expected" error.

Parameters
pCollation customization parser
termWhich lexem is expected.
Return values
0if the required term was not found.
1if the required term was found.

◆ my_coll_parser_too_long_error()

static int my_coll_parser_too_long_error ( MY_COLL_RULE_PARSER p,
const char *  name 
)
static

Display error when a too long character sequence is met.

Parameters
pCollation customization parser
nameWhich kind of sequence: contraction, expansion, etc.
Returns
0, to use in "return" and boolean expressions.

◆ my_coll_rule_expand()

static int my_coll_rule_expand ( my_wc_t wc,
size_t  limit,
my_wc_t  code 
)
static

Append new character to the end of a 0-terminated wide string.

Parameters
wcWide string
limitMaximum possible result length
codeCharacter to add
Returns
1 if character was added, 0 if string was too long

◆ my_coll_rule_parse()

static int my_coll_rule_parse ( MY_COLL_RULES rules,
const char *  str,
const char *  str_end,
const char *  col_name 
)
static

◆ my_coll_rule_reset()

static void my_coll_rule_reset ( MY_COLL_RULE r)
static

Initialize collation customization rule.

Parameters
rRule

◆ my_coll_rule_reset_length()

static size_t my_coll_rule_reset_length ( MY_COLL_RULE r)
inlinestatic

Return length of the "reset" string of a rule.

Parameters
rCollation customization rule
Returns
Length of r->base

◆ my_coll_rule_shift_at_level()

static void my_coll_rule_shift_at_level ( MY_COLL_RULE r,
int  level 
)
static

Apply difference at level.

Parameters
rRule
levelLevel (0,1,2,3,4)

◆ my_coll_rule_shift_length()

static size_t my_coll_rule_shift_length ( MY_COLL_RULE r)
inlinestatic

Return length of the "shift" string of a rule.

Parameters
rCollation customization rule
Returns
Length of r->base

◆ my_coll_rules_add()

static int my_coll_rules_add ( MY_COLL_RULES rules,
MY_COLL_RULE rule 
)
static

Append one new rule to a rule array.

Parameters
rulesRule container
ruleNew rule to add
Returns
0 on success, -1 on error.

◆ my_coll_rules_realloc()

static int my_coll_rules_realloc ( MY_COLL_RULES rules,
size_t  n 
)
static

Realloc rule array to a new size.

Reallocate memory for 128 additional rules at once, to reduce the number of reallocs, which is important for long tailorings (e.g. for East Asian collations).

Parameters
rulesRule container
nnew number of rules
Returns
0 on success, -1 on error.

◆ my_coll_uninit_uca()

static void my_coll_uninit_uca ( CHARSET_INFO cs)
static

◆ my_comp_in_rulelist()

static bool my_comp_in_rulelist ( const MY_COLL_RULES rules,
my_wc_t  wc 
)
static

Check whether the composition character is already in rule list.

Parameters
rulesThe rule list
wcThe composition character
Returns
true The composition character is already in list false The composition character is not in list

◆ my_compchar_is_normal_char() [1/2]

static bool my_compchar_is_normal_char ( const Unidata_decomp decomp)
inlinestatic

◆ my_compchar_is_normal_char() [2/2]

static bool my_compchar_is_normal_char ( uint  dec_ind)
inlinestatic

Check whether a composition character in the decomposition list is a normal character.

Parameters
dec_indThe index of composition character in list
Returns
Whether it is a normal character

◆ my_decompose_hangul_syllable()

static int my_decompose_hangul_syllable ( my_wc_t  syllable,
my_wc_t jamo 
)
static

Check if a code point is Hangul syllable.

Decompose it to jamos if it is, and return tailored weights.

Parameters
syllableHangul syllable to be decomposed
[out]jamoCorresponding jamos
Returns
0 The code point is not Hangul syllable or cannot be decomposed others The number of jamos returned

◆ my_find_combining_mark()

static Combining_mark * my_find_combining_mark ( my_wc_t  code)
static

◆ my_hash_sort_any_uca()

static void my_hash_sort_any_uca ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
uint64 n1,
uint64 n2 
)
static

◆ my_hash_sort_uca()

template<class Mb_wc >
static void my_hash_sort_uca ( const CHARSET_INFO cs,
Mb_wc  mb_wc,
const uchar s,
size_t  slen,
uint64 n1,
uint64 n2 
)
static

◆ my_hash_sort_uca_900()

static void my_hash_sort_uca_900 ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
uint64 n1,
uint64  
)
static

◆ my_hash_sort_uca_900_tmpl()

template<class Mb_wc , int LEVELS_FOR_COMPARE>
static void my_hash_sort_uca_900_tmpl ( const CHARSET_INFO cs,
const Mb_wc  mb_wc,
const uchar s,
size_t  slen,
uint64 n1 
)
static

◆ my_hash_sort_ucs2_uca()

static void my_hash_sort_ucs2_uca ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
uint64 n1,
uint64 n2 
)
static

◆ my_is_inheritance_of_origin()

static bool my_is_inheritance_of_origin ( const my_wc_t origin_dec,
const my_wc_t dec_codes,
my_wc_t dec_diff 
)
static

Check if a list of combining marks contains the whole list of origin decomposed combining marks.

Parameters
origin_decThe origin list of combining marks decomposed from character in tailoring rule.
dec_codesThe list of combining marks decomposed from character in decomposition list.
dec_diffThe combining marks exist in dec_codes but not in origin_dec.
Returns
Whether the list of combining marks contains the whole list of origin combining marks.

◆ my_prepare_coll_param()

static bool my_prepare_coll_param ( CHARSET_INFO cs,
MY_COLL_RULES rules 
)
static

Prepare parametric tailoring, like reorder, etc.

Parameters
csCharacter set info
rulesCollation rule list to add to.
Returns
false Collation parameters applied sucessfully. true Error happened.

◆ my_prepare_reorder()

static int my_prepare_reorder ( CHARSET_INFO cs)
static

Prepare reorder parameters.

Parameters
csCharacter set info

◆ my_propagate_uca_900()

bool my_propagate_uca_900 ( const CHARSET_INFO cs,
const uchar str,
size_t  length 
)

◆ my_set_weight_rec()

static void my_set_weight_rec ( Reorder_wt_rec(&)  wt_rec[2 *UCA_MAX_CHAR_GRP],
int  rec_ind,
uint16  old_begin,
uint16  old_end,
uint16  new_begin,
uint16  new_end 
)
inlinestatic

Helper function to store weight boundary values.

Parameters
[out]wt_recWeight boundary for each character group and gap between groups
rec_indThe position from where to store weight boundary
old_beginBeginning weight of character group before reorder
old_endEnd weight of character group before reorder
new_beginBeginning weight of character group after reorder
new_endEnd weight of character group after reorder

◆ my_space_weight()

static int my_space_weight ( const CHARSET_INFO cs)
inlinestatic

◆ my_strcasecmp_uca()

static int my_strcasecmp_uca ( const CHARSET_INFO cs,
const char *  s,
const char *  t 
)
static

◆ my_strnncoll_any_uca()

static int my_strnncoll_any_uca ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen,
bool  t_is_prefix 
)
static

◆ my_strnncoll_uca()

template<class Scanner , int LEVELS_FOR_COMPARE, class Mb_wc >
static int my_strnncoll_uca ( const CHARSET_INFO cs,
const Mb_wc  mb_wc,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen,
bool  t_is_prefix 
)
static

◆ my_strnncoll_uca_900()

static int my_strnncoll_uca_900 ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen,
bool  t_is_prefix 
)
static

◆ my_strnncoll_ucs2_uca()

static int my_strnncoll_ucs2_uca ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen,
bool  t_is_prefix 
)
static

◆ my_strnncollsp_any_uca()

static int my_strnncollsp_any_uca ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen 
)
static

◆ my_strnncollsp_uca()

template<class Mb_wc >
static int my_strnncollsp_uca ( const CHARSET_INFO cs,
Mb_wc  mb_wc,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen 
)
static

◆ my_strnncollsp_uca_900()

static int my_strnncollsp_uca_900 ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen 
)
static

◆ my_strnncollsp_ucs2_uca()

static int my_strnncollsp_ucs2_uca ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen 
)
static

◆ my_strnncollsp_utf8mb4_0900_bin()

static int my_strnncollsp_utf8mb4_0900_bin ( const CHARSET_INFO cs,
const uchar s,
size_t  slen,
const uchar t,
size_t  tlen 
)
static

◆ my_strnxfrm_any_uca()

static size_t my_strnxfrm_any_uca ( const CHARSET_INFO cs,
uchar dst,
size_t  dstlen,
uint  num_codepoints,
const uchar src,
size_t  srclen,
uint  flags 
)
static

◆ my_strnxfrm_uca()

template<class Mb_wc >
static size_t my_strnxfrm_uca ( const CHARSET_INFO cs,
Mb_wc  mb_wc,
uchar dst,
size_t  dstlen,
uint  num_codepoints,
const uchar src,
size_t  srclen,
uint  flags 
)
static

◆ my_strnxfrm_uca_900()

static size_t my_strnxfrm_uca_900 ( const CHARSET_INFO cs,
uchar dst,
size_t  dstlen,
uint  num_codepoints,
const uchar src,
size_t  srclen,
uint  flags 
)
static

◆ my_strnxfrm_uca_900_tmpl()

template<class Mb_wc , int LEVELS_FOR_COMPARE>
static size_t my_strnxfrm_uca_900_tmpl ( const CHARSET_INFO cs,
const Mb_wc  mb_wc,
uchar dst,
size_t  dstlen,
const uchar src,
size_t  srclen,
uint  flags 
)
static

◆ my_strnxfrm_ucs2_uca()

static size_t my_strnxfrm_ucs2_uca ( const CHARSET_INFO cs,
uchar dst,
size_t  dstlen,
uint  num_codepoints,
const uchar src,
size_t  srclen,
uint  flags 
)
static

◆ my_strnxfrm_utf8mb4_0900_bin()

static size_t my_strnxfrm_utf8mb4_0900_bin ( const CHARSET_INFO cs,
uchar dst,
size_t  dstlen,
uint  nweights,
const uchar src,
size_t  srclen,
uint  flags 
)
static

◆ my_strnxfrmlen_uca_900()

static size_t my_strnxfrmlen_uca_900 ( const CHARSET_INFO cs,
size_t  len 
)
static

◆ my_uca_add_contraction_flag()

static void my_uca_add_contraction_flag ( char *  flags,
my_wc_t  wc,
int  flag 
)
inlinestatic

Mark a code point as a contraction part.

Parameters
flagsPointer to UCA contraction flag data
wcUnicode code point
flagflag: "is contraction head", "is contraction tail"

◆ my_uca_can_be_previous_context_head()

static bool my_uca_can_be_previous_context_head ( const char *  flags,
my_wc_t  wc 
)
inlinestatic

Check if a code point can be previous context head.

Parameters
flagsPointer to UCA contraction flag data
wcCode point
Return values
false- cannot be previous context head
true- can be previous context head

◆ my_uca_can_be_previous_context_tail()

static bool my_uca_can_be_previous_context_tail ( const char *  flags,
my_wc_t  wc 
)
inlinestatic

Check if a code point can be previous context tail.

Parameters
flagsPointer to UCA contraction flag data
wcCode point
Return values
false- cannot be contraction tail
true- can be contraction tail

◆ my_uca_charcmp()

static int my_uca_charcmp ( const CHARSET_INFO cs,
my_wc_t  wc1,
my_wc_t  wc2 
)
static

◆ my_uca_charcmp_900()

static int my_uca_charcmp_900 ( const CHARSET_INFO cs,
my_wc_t  wc1,
my_wc_t  wc2 
)
static

◆ my_uca_contraction2_weight()

const uint16 * my_uca_contraction2_weight ( const std::vector< MY_CONTRACTION > *  cont_nodes,
my_wc_t  wc1,
my_wc_t  wc2 
)

Find a contraction consisting of two code points and return its weight array.

Parameters
cont_nodesVector that contains contraction nodes
wc1First code point
wc2Second code point
Returns
Weight array
Return values
NULL- no contraction found
ptr- contraction weight array

◆ my_uca_contraction_weight()

static const uint16 * my_uca_contraction_weight ( const std::vector< MY_CONTRACTION > *  cont_nodes,
const my_wc_t wc,
size_t  len 
)
inlinestatic

Check if a string is a contraction of exactly the given length, and return its weight array on success.

Parameters
cont_nodesVector that contains contraction nodes
wcPointer to wide string
lenString length
Returns
Weight array
Return values
NULL- Input string is not a known contraction
ptr- contraction weight array

◆ my_uca_copy_page()

static bool my_uca_copy_page ( CHARSET_INFO cs,
MY_CHARSET_LOADER loader,
const MY_UCA_INFO src,
MY_UCA_INFO dst,
size_t  page 
)
static

Alloc new page and copy the default UCA weights.

Parameters
csCharacter set
loaderCharacter set loader
srcDefault UCA data to copy from
dstUCA data to copy weights to
pagepage number
Return values
falseon success
trueon error

◆ my_uca_have_contractions()

static bool my_uca_have_contractions ( const MY_UCA_INFO uca)
inlinestatic

Check if UCA level data has contractions.

Parameters
ucaPointer to UCA data
Returns
Flags indicating if UCA with contractions
Return values
0- no contractions
1- there are some contractions

◆ my_wildcmp_uca()

static int my_wildcmp_uca ( const CHARSET_INFO cs,
const char *  str,
const char *  str_end,
const char *  wildstr,
const char *  wildend,
int  escape,
int  w_one,
int  w_many 
)
static

◆ my_wildcmp_uca_impl()

static int my_wildcmp_uca_impl ( const CHARSET_INFO cs,
const char *  str,
const char *  str_end,
const char *  wildstr,
const char *  wildend,
int  escape,
int  w_one,
int  w_many,
int  recurse_level 
)
static

◆ my_wstrnlen()

static size_t my_wstrnlen ( my_wc_t s,
size_t  maxlen 
)
static

Return length of a 0-terminated wide string, analogous to strnlen().

Parameters
sPointer to wide string
maxlenMamixum string length
Returns
string length, or maxlen if no '\0' is met.

◆ spread_case_mask()

static void spread_case_mask ( uint16 to,
size_t  to_stride,
size_t  tailored_ce_cnt,
uint16  case_mask 
)
static

◆ synthesize_lengths_900()

static void synthesize_lengths_900 ( uchar lengths,
const uint16 *const *  weights,
uint  npages 
)
static

Variable Documentation

◆ croatian

const char croatian[]
static
Initial value:
=
"&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106"
"&D < d\\u017E = \\u01C6 <<< d\\u017D <<< D\\u017E = \\u01C5 <<< D\\u017D "
"= \\u01C4"
" < \\u0111 <<< \\u0110"
"&L < lj = \\u01C9 <<< lJ <<< Lj = \\u01C8 <<< LJ = \\u01C7"
"&N < nj = \\u01CC <<< nJ <<< Nj = \\u01CB <<< NJ = \\u01CA"
"&S < \\u0161 <<< \\u0160"
"&Z < \\u017E <<< \\u017D"

◆ cs_cldr_30

const char cs_cldr_30[]
static
Initial value:
=
"&C < \\u010D <<< \\u010C "
"&H < ch <<< cH <<< Ch <<< CH "
"&R < \\u0159 <<< \\u0158"
"&S < \\u0161 <<< \\u0160"
"&Z < \\u017E <<< \\u017D"

◆ ctype_gb18030

const uchar ctype_gb18030[257]
static
Initial value:
= {
0,
32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 16, 16, 16, 16, 16, 16,
16, 129, 129, 129, 129, 129, 129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
16, 130, 130, 130, 130, 130, 130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0}

The array used for "type of characters" bit mask for each character.

The ctype[0] is reserved for EOF(-1), so we use ctype[(char)+1]. Also refer to strings/CHARSET_INFO.txt

◆ ctype_utf8

const uchar ctype_utf8[]
static
Initial value:
= {
0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 16, 16, 16, 16, 16,
16, 16, 129, 129, 129, 129, 129, 129, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16,
16, 16, 130, 130, 130, 130, 130, 130, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16,
32, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
0}

◆ czech

const char czech[]
static
Initial value:
=
"& C < \\u010D <<< \\u010C "
"& H < ch <<< Ch <<< CH"
"& R < \\u0159 <<< \\u0158"
"& S < \\u0161 <<< \\u0160"
"& Z < \\u017E <<< \\u017D"

◆ da_cldr_30

const char da_cldr_30[]
static
Initial value:
=
"& D << \\u0111 <<< \\u0110 << \\u00F0 <<< \\u00D0 "
"& t <<< \\u00FE/h "
"& T <<< \\u00DE/H "
"& Y << \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170 "
"&[before 1]\\u01C0 < \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 "
"< \\u00F8 <<< \\u00D8 << \\u00F6 <<< \\u00D6 "
"<< \\u0151 <<< \\u0150 << \\u0153 <<< \\u0152 "
"< \\u00E5 <<< \\u00C5 <<< aa <<< Aa "
"<<< AA"

◆ da_coll_param

Coll_param da_coll_param = {nullptr, false, CASE_FIRST_UPPER}
static

◆ danish

const char danish[]
static
Initial value:
=
"& Y << \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170"
"& Z < \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4"
" < \\u00F8 <<< \\u00D8 << \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150"
" < \\u00E5 <<< \\u00C5 << aa <<< Aa <<< AA"

◆ de_pb_cldr_30

const char de_pb_cldr_30[]
static
Initial value:
=
"&AE << \\u00E4 <<< \\u00C4 "
"&OE << \\u00F6 <<< \\u00D6 "
"&UE << \\u00FC <<< \\u00DC "

◆ es_trad_cldr_30

const char es_trad_cldr_30[]
static
Initial value:
=
"&N < \\u00F1 <<< \\u00D1 "
"&C < ch <<< Ch <<< CH "
"&l < ll <<< Ll <<< LL"

◆ esperanto

const char esperanto[]
static
Initial value:
=
"& C < \\u0109 <<< \\u0108"
"& G < \\u011D <<< \\u011C"
"& H < \\u0125 <<< \\u0124"
"& J < \\u0135 <<< \\u0134"
"& S < \\u015d <<< \\u015c"
"& U < \\u016d <<< \\u016c"

◆ estonian

const char estonian[]
static
Initial value:
=
"& S < \\u0161 <<< \\u0160 "
" < \\u007A <<< \\u005A "
" < \\u017E <<< \\u017D "
"& W < \\u00F5 <<< \\u00D5 "
"< \\u00E4 <<< \\u00C4 "
"< \\u00F6 <<< \\u00D6 "
"< \\u00FC <<< \\u00DC "

◆ et_cldr_30

const char et_cldr_30[]
static
Initial value:
=
"&[before 1]T < \\u0161 <<< \\u0160 < z <<< Z "
"< \\u017E <<< \\u017D "
"&[before 1]X < \\u00F5 <<< \\u00D5 < \\u00E4 <<< \\u00C4 "
"< \\u00F6 <<< \\u00D6 < \\u00FC <<< \\u00DC"

◆ german2

const char german2[]
static
Initial value:
=
"&AE << \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 "
"&OE << \\u0153 <<< \\u0152 << \\u00F6 <<< \\u00D6 "
"&UE << \\u00FC <<< \\u00DC "

◆ hr_cldr_30

const char hr_cldr_30[]
static
Initial value:
=
"&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106 "
"&D < d\\u017E <<< \\u01C6 <<< D\\u017E <<< \\u01C5 <<< D\\u017D "
"<<< \\u01C4 < \\u0111 <<< \\u0110 "
"&L < lj <<< \\u01C9 <<< Lj <<< \\u01C8 <<< LJ "
"<<< \\u01C7 "
"&N < nj <<< \\u01CC <<< Nj <<< \\u01CB <<< NJ "
"<<< \\u01CA "
"&S < \\u0161 <<< \\u0160 "
"&Z < \\u017E <<< \\u017D "

◆ hr_coll_param

Coll_param hr_coll_param = {&hr_reorder_param, false, CASE_FIRST_OFF}
static

◆ hr_reorder_param

Reorder_param hr_reorder_param
static
Initial value:
= {
{CHARGRP_LATIN, CHARGRP_CYRILLIC, CHARGRP_NONE}, {{{0, 0}, {0, 0}}}, 0, 0}
@ CHARGRP_NONE
Definition: str_uca_type.h:40
@ CHARGRP_LATIN
Definition: str_uca_type.h:42
@ CHARGRP_CYRILLIC
Definition: str_uca_type.h:43

◆ hu_cldr_30

const char hu_cldr_30[]
static

◆ hungarian

const char hungarian[]
static
Initial value:
=
"&O < \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150"
"&U < \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170"

◆ icelandic

const char icelandic[]
static
Initial value:
=
"& A < \\u00E1 <<< \\u00C1 "
"& D < \\u00F0 <<< \\u00D0 "
"& E < \\u00E9 <<< \\u00C9 "
"& I < \\u00ED <<< \\u00CD "
"& O < \\u00F3 <<< \\u00D3 "
"& U < \\u00FA <<< \\u00DA "
"& Y < \\u00FD <<< \\u00DD "
"& Z < \\u00FE <<< \\u00DE "
"< \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 "
"< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 "
"< \\u00E5 <<< \\u00C5 "

◆ is_cldr_30

const char is_cldr_30[]
static
Initial value:
=
"&[before 1]b < \\u00E1 <<< \\u00C1 "
"& d << \\u0111 <<< \\u0110 < \\u00F0 <<< \\u00D0 "
"&[before 1]f < \\u00E9 <<< \\u00C9 "
"&[before 1]j < \\u00ED <<< \\u00CD "
"&[before 1]p < \\u00F3 <<< \\u00D3 "
"&[before 1]v < \\u00FA <<< \\u00DA "
"&[before 1]z < \\u00FD <<< \\u00DD "
"&[before 1]\\u01C0 < \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 "
"< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 "
"< \\u00E5 <<< \\u00C5"

◆ ja_coll_param

Coll_param ja_coll_param
static
Initial value:
= {&ja_reorder_param, false ,
static Reorder_param ja_reorder_param
Definition: ctype-uca.cc:680
@ CASE_FIRST_OFF
Definition: str_uca_type.h:66

◆ ja_reorder_param

Reorder_param ja_reorder_param
static
Initial value:
= {
{{{0, 0}, {0, 0}}},
0,
0}
@ CHARGRP_KANA
Definition: str_uca_type.h:45

◆ latvian

const char latvian[]
static
Initial value:
=
"& C < \\u010D <<< \\u010C "
"& G < \\u0123 <<< \\u0122 "
"& I < \\u0079 <<< \\u0059 "
"& K < \\u0137 <<< \\u0136 "
"& L < \\u013C <<< \\u013B "
"& N < \\u0146 <<< \\u0145 "
"& R < \\u0157 <<< \\u0156 "
"& S < \\u0161 <<< \\u0160 "
"& Z < \\u017E <<< \\u017D "

◆ lithuanian

const char lithuanian[]
static
Initial value:
=
"& C << ch <<< Ch <<< CH< \\u010D <<< \\u010C"
"& E << \\u0119 <<< \\u0118 << \\u0117 <<< \\u0116"
"& I << y <<< Y"
"& S < \\u0161 <<< \\u0160"
"& Z < \\u017E <<< \\u017D"

◆ lt_cldr_30

const char lt_cldr_30[]
static
Initial value:
=
"&\\u0300 = \\u0307\\u0300 "
"&\\u0301 = \\u0307\\u0301 "
"&\\u0303 = \\u0307\\u0303 "
"&A << \\u0105 <<< \\u0104 "
"&C < \\u010D <<< \\u010C "
"&E << \\u0119 <<< \\u0118 << \\u0117 <<< \\u0116"
"&I << \\u012F <<< \\u012E << y <<< Y "
"&S < \\u0161 <<< \\u0160 "
"&U << \\u0173 <<< \\u0172 << \\u016B <<< \\u016A "
"&Z < \\u017E <<< \\u017D"

◆ lv_cldr_30

const char lv_cldr_30[]
static
Initial value:
=
"&[before 1]D < \\u010D <<< \\u010C "
"&[before 1]H < \\u0123 <<< \\u0122 "
"& I << y <<< Y "
"&[before 1]L < \\u0137 <<< \\u0136 "
"&[before 1]M < \\u013C <<< \\u013B "
"&[before 1]O < \\u0146 <<< \\u0145 "
"&[before 1]S < \\u0157 <<< \\u0156 "
"&[before 1]T < \\u0161 <<< \\u0160 "
"&[before 1]\\u01B7 < \\u017E <<< \\u017D"

◆ my_charset_gb18030_uca_handler

MY_CHARSET_HANDLER my_charset_gb18030_uca_handler
extern

◆ my_charset_gb18030_unicode_520_ci

CHARSET_INFO my_charset_gb18030_unicode_520_ci

◆ my_charset_ucs2_croatian_uca_ci

CHARSET_INFO my_charset_ucs2_croatian_uca_ci

◆ my_charset_ucs2_czech_uca_ci

CHARSET_INFO my_charset_ucs2_czech_uca_ci

◆ my_charset_ucs2_danish_uca_ci

CHARSET_INFO my_charset_ucs2_danish_uca_ci

◆ my_charset_ucs2_esperanto_uca_ci

CHARSET_INFO my_charset_ucs2_esperanto_uca_ci

◆ my_charset_ucs2_estonian_uca_ci

CHARSET_INFO my_charset_ucs2_estonian_uca_ci

◆ my_charset_ucs2_german2_uca_ci

CHARSET_INFO my_charset_ucs2_german2_uca_ci

◆ my_charset_ucs2_hungarian_uca_ci

CHARSET_INFO my_charset_ucs2_hungarian_uca_ci

◆ my_charset_ucs2_icelandic_uca_ci

CHARSET_INFO my_charset_ucs2_icelandic_uca_ci

◆ my_charset_ucs2_latvian_uca_ci

CHARSET_INFO my_charset_ucs2_latvian_uca_ci

◆ my_charset_ucs2_lithuanian_uca_ci

CHARSET_INFO my_charset_ucs2_lithuanian_uca_ci

◆ my_charset_ucs2_persian_uca_ci

CHARSET_INFO my_charset_ucs2_persian_uca_ci

◆ my_charset_ucs2_polish_uca_ci

CHARSET_INFO my_charset_ucs2_polish_uca_ci

◆ my_charset_ucs2_roman_uca_ci

CHARSET_INFO my_charset_ucs2_roman_uca_ci

◆ my_charset_ucs2_romanian_uca_ci

CHARSET_INFO my_charset_ucs2_romanian_uca_ci

◆ my_charset_ucs2_sinhala_uca_ci

CHARSET_INFO my_charset_ucs2_sinhala_uca_ci

◆ my_charset_ucs2_slovak_uca_ci

CHARSET_INFO my_charset_ucs2_slovak_uca_ci

◆ my_charset_ucs2_slovenian_uca_ci

CHARSET_INFO my_charset_ucs2_slovenian_uca_ci

◆ my_charset_ucs2_spanish2_uca_ci

CHARSET_INFO my_charset_ucs2_spanish2_uca_ci

◆ my_charset_ucs2_spanish_uca_ci

CHARSET_INFO my_charset_ucs2_spanish_uca_ci

◆ my_charset_ucs2_swedish_uca_ci

CHARSET_INFO my_charset_ucs2_swedish_uca_ci

◆ my_charset_ucs2_turkish_uca_ci

CHARSET_INFO my_charset_ucs2_turkish_uca_ci

◆ my_charset_ucs2_unicode_520_ci

CHARSET_INFO my_charset_ucs2_unicode_520_ci

◆ my_charset_ucs2_unicode_ci

CHARSET_INFO my_charset_ucs2_unicode_ci

◆ my_charset_ucs2_vietnamese_ci

CHARSET_INFO my_charset_ucs2_vietnamese_ci

◆ my_charset_utf16_croatian_uca_ci

CHARSET_INFO my_charset_utf16_croatian_uca_ci

◆ my_charset_utf16_czech_uca_ci

CHARSET_INFO my_charset_utf16_czech_uca_ci

◆ my_charset_utf16_danish_uca_ci

CHARSET_INFO my_charset_utf16_danish_uca_ci

◆ my_charset_utf16_esperanto_uca_ci

CHARSET_INFO my_charset_utf16_esperanto_uca_ci

◆ my_charset_utf16_estonian_uca_ci

CHARSET_INFO my_charset_utf16_estonian_uca_ci

◆ my_charset_utf16_german2_uca_ci

CHARSET_INFO my_charset_utf16_german2_uca_ci

◆ my_charset_utf16_handler

MY_CHARSET_HANDLER my_charset_utf16_handler
extern

◆ my_charset_utf16_hungarian_uca_ci

CHARSET_INFO my_charset_utf16_hungarian_uca_ci

◆ my_charset_utf16_icelandic_uca_ci

CHARSET_INFO my_charset_utf16_icelandic_uca_ci

◆ my_charset_utf16_latvian_uca_ci

CHARSET_INFO my_charset_utf16_latvian_uca_ci

◆ my_charset_utf16_lithuanian_uca_ci

CHARSET_INFO my_charset_utf16_lithuanian_uca_ci

◆ my_charset_utf16_persian_uca_ci

CHARSET_INFO my_charset_utf16_persian_uca_ci

◆ my_charset_utf16_polish_uca_ci

CHARSET_INFO my_charset_utf16_polish_uca_ci

◆ my_charset_utf16_roman_uca_ci

CHARSET_INFO my_charset_utf16_roman_uca_ci

◆ my_charset_utf16_romanian_uca_ci

CHARSET_INFO my_charset_utf16_romanian_uca_ci

◆ my_charset_utf16_sinhala_uca_ci

CHARSET_INFO my_charset_utf16_sinhala_uca_ci

◆ my_charset_utf16_slovak_uca_ci

CHARSET_INFO my_charset_utf16_slovak_uca_ci

◆ my_charset_utf16_slovenian_uca_ci

CHARSET_INFO my_charset_utf16_slovenian_uca_ci

◆ my_charset_utf16_spanish2_uca_ci

CHARSET_INFO my_charset_utf16_spanish2_uca_ci

◆ my_charset_utf16_spanish_uca_ci

CHARSET_INFO my_charset_utf16_spanish_uca_ci

◆ my_charset_utf16_swedish_uca_ci

CHARSET_INFO my_charset_utf16_swedish_uca_ci

◆ my_charset_utf16_turkish_uca_ci

CHARSET_INFO my_charset_utf16_turkish_uca_ci

◆ my_charset_utf16_unicode_520_ci

CHARSET_INFO my_charset_utf16_unicode_520_ci

◆ my_charset_utf16_unicode_ci

CHARSET_INFO my_charset_utf16_unicode_ci

◆ my_charset_utf16_vietnamese_ci

CHARSET_INFO my_charset_utf16_vietnamese_ci

◆ my_charset_utf32_croatian_uca_ci

CHARSET_INFO my_charset_utf32_croatian_uca_ci

◆ my_charset_utf32_czech_uca_ci

CHARSET_INFO my_charset_utf32_czech_uca_ci

◆ my_charset_utf32_danish_uca_ci

CHARSET_INFO my_charset_utf32_danish_uca_ci

◆ my_charset_utf32_esperanto_uca_ci

CHARSET_INFO my_charset_utf32_esperanto_uca_ci

◆ my_charset_utf32_estonian_uca_ci

CHARSET_INFO my_charset_utf32_estonian_uca_ci

◆ my_charset_utf32_german2_uca_ci

CHARSET_INFO my_charset_utf32_german2_uca_ci

◆ my_charset_utf32_handler

MY_CHARSET_HANDLER my_charset_utf32_handler
extern

◆ my_charset_utf32_hungarian_uca_ci

CHARSET_INFO my_charset_utf32_hungarian_uca_ci

◆ my_charset_utf32_icelandic_uca_ci

CHARSET_INFO my_charset_utf32_icelandic_uca_ci

◆ my_charset_utf32_latvian_uca_ci

CHARSET_INFO my_charset_utf32_latvian_uca_ci

◆ my_charset_utf32_lithuanian_uca_ci

CHARSET_INFO my_charset_utf32_lithuanian_uca_ci

◆ my_charset_utf32_persian_uca_ci

CHARSET_INFO my_charset_utf32_persian_uca_ci

◆ my_charset_utf32_polish_uca_ci

CHARSET_INFO my_charset_utf32_polish_uca_ci

◆ my_charset_utf32_roman_uca_ci

CHARSET_INFO my_charset_utf32_roman_uca_ci

◆ my_charset_utf32_romanian_uca_ci

CHARSET_INFO my_charset_utf32_romanian_uca_ci

◆ my_charset_utf32_sinhala_uca_ci

CHARSET_INFO my_charset_utf32_sinhala_uca_ci

◆ my_charset_utf32_slovak_uca_ci

CHARSET_INFO my_charset_utf32_slovak_uca_ci

◆ my_charset_utf32_slovenian_uca_ci

CHARSET_INFO my_charset_utf32_slovenian_uca_ci

◆ my_charset_utf32_spanish2_uca_ci

CHARSET_INFO my_charset_utf32_spanish2_uca_ci

◆ my_charset_utf32_spanish_uca_ci

CHARSET_INFO my_charset_utf32_spanish_uca_ci

◆ my_charset_utf32_swedish_uca_ci

CHARSET_INFO my_charset_utf32_swedish_uca_ci

◆ my_charset_utf32_turkish_uca_ci

CHARSET_INFO my_charset_utf32_turkish_uca_ci

◆ my_charset_utf32_unicode_520_ci

CHARSET_INFO my_charset_utf32_unicode_520_ci

◆ my_charset_utf32_unicode_ci

CHARSET_INFO my_charset_utf32_unicode_ci

◆ my_charset_utf32_vietnamese_ci

CHARSET_INFO my_charset_utf32_vietnamese_ci

◆ my_charset_utf8_croatian_uca_ci

CHARSET_INFO my_charset_utf8_croatian_uca_ci

◆ my_charset_utf8_czech_uca_ci

CHARSET_INFO my_charset_utf8_czech_uca_ci

◆ my_charset_utf8_danish_uca_ci

CHARSET_INFO my_charset_utf8_danish_uca_ci

◆ my_charset_utf8_esperanto_uca_ci

CHARSET_INFO my_charset_utf8_esperanto_uca_ci

◆ my_charset_utf8_estonian_uca_ci

CHARSET_INFO my_charset_utf8_estonian_uca_ci

◆ my_charset_utf8_german2_uca_ci

CHARSET_INFO my_charset_utf8_german2_uca_ci

◆ my_charset_utf8_handler

MY_CHARSET_HANDLER my_charset_utf8_handler
extern

◆ my_charset_utf8_hungarian_uca_ci

CHARSET_INFO my_charset_utf8_hungarian_uca_ci

◆ my_charset_utf8_icelandic_uca_ci

CHARSET_INFO my_charset_utf8_icelandic_uca_ci

◆ my_charset_utf8_latvian_uca_ci

CHARSET_INFO my_charset_utf8_latvian_uca_ci

◆ my_charset_utf8_lithuanian_uca_ci

CHARSET_INFO my_charset_utf8_lithuanian_uca_ci

◆ my_charset_utf8_persian_uca_ci

CHARSET_INFO my_charset_utf8_persian_uca_ci

◆ my_charset_utf8_polish_uca_ci

CHARSET_INFO my_charset_utf8_polish_uca_ci

◆ my_charset_utf8_roman_uca_ci

CHARSET_INFO my_charset_utf8_roman_uca_ci

◆ my_charset_utf8_romanian_uca_ci

CHARSET_INFO my_charset_utf8_romanian_uca_ci

◆ my_charset_utf8_sinhala_uca_ci

CHARSET_INFO my_charset_utf8_sinhala_uca_ci

◆ my_charset_utf8_slovak_uca_ci

CHARSET_INFO my_charset_utf8_slovak_uca_ci

◆ my_charset_utf8_slovenian_uca_ci

CHARSET_INFO my_charset_utf8_slovenian_uca_ci

◆ my_charset_utf8_spanish2_uca_ci

CHARSET_INFO my_charset_utf8_spanish2_uca_ci

◆ my_charset_utf8_spanish_uca_ci

CHARSET_INFO my_charset_utf8_spanish_uca_ci

◆ my_charset_utf8_swedish_uca_ci

CHARSET_INFO my_charset_utf8_swedish_uca_ci

◆ my_charset_utf8_turkish_uca_ci

CHARSET_INFO my_charset_utf8_turkish_uca_ci

◆ my_charset_utf8_unicode_520_ci

CHARSET_INFO my_charset_utf8_unicode_520_ci

◆ my_charset_utf8_unicode_ci

CHARSET_INFO my_charset_utf8_unicode_ci

◆ my_charset_utf8_vietnamese_ci

CHARSET_INFO my_charset_utf8_vietnamese_ci

◆ my_charset_utf8mb4_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_0900_ai_ci

◆ my_charset_utf8mb4_0900_as_ci

CHARSET_INFO my_charset_utf8mb4_0900_as_ci

◆ my_charset_utf8mb4_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_0900_as_cs

◆ my_charset_utf8mb4_0900_bin

CHARSET_INFO my_charset_utf8mb4_0900_bin

◆ my_charset_utf8mb4_croatian_uca_ci

CHARSET_INFO my_charset_utf8mb4_croatian_uca_ci

◆ my_charset_utf8mb4_cs_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_cs_0900_ai_ci

◆ my_charset_utf8mb4_cs_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_cs_0900_as_cs

◆ my_charset_utf8mb4_czech_uca_ci

CHARSET_INFO my_charset_utf8mb4_czech_uca_ci

◆ my_charset_utf8mb4_da_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_da_0900_ai_ci

◆ my_charset_utf8mb4_da_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_da_0900_as_cs

◆ my_charset_utf8mb4_danish_uca_ci

CHARSET_INFO my_charset_utf8mb4_danish_uca_ci

◆ my_charset_utf8mb4_de_pb_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_de_pb_0900_ai_ci

◆ my_charset_utf8mb4_de_pb_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_de_pb_0900_as_cs

◆ my_charset_utf8mb4_eo_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_eo_0900_ai_ci

◆ my_charset_utf8mb4_eo_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_eo_0900_as_cs

◆ my_charset_utf8mb4_es_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_es_0900_ai_ci

◆ my_charset_utf8mb4_es_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_es_0900_as_cs

◆ my_charset_utf8mb4_es_trad_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_es_trad_0900_ai_ci

◆ my_charset_utf8mb4_es_trad_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_es_trad_0900_as_cs

◆ my_charset_utf8mb4_esperanto_uca_ci

CHARSET_INFO my_charset_utf8mb4_esperanto_uca_ci

◆ my_charset_utf8mb4_estonian_uca_ci

CHARSET_INFO my_charset_utf8mb4_estonian_uca_ci

◆ my_charset_utf8mb4_et_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_et_0900_ai_ci

◆ my_charset_utf8mb4_et_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_et_0900_as_cs

◆ my_charset_utf8mb4_german2_uca_ci

CHARSET_INFO my_charset_utf8mb4_german2_uca_ci

◆ my_charset_utf8mb4_handler

MY_CHARSET_HANDLER my_charset_utf8mb4_handler
extern

◆ my_charset_utf8mb4_hr_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_hr_0900_ai_ci

◆ my_charset_utf8mb4_hr_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_hr_0900_as_cs

◆ my_charset_utf8mb4_hu_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_hu_0900_ai_ci

◆ my_charset_utf8mb4_hu_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_hu_0900_as_cs

◆ my_charset_utf8mb4_hungarian_uca_ci

CHARSET_INFO my_charset_utf8mb4_hungarian_uca_ci

◆ my_charset_utf8mb4_icelandic_uca_ci

CHARSET_INFO my_charset_utf8mb4_icelandic_uca_ci

◆ my_charset_utf8mb4_is_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_is_0900_ai_ci

◆ my_charset_utf8mb4_is_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_is_0900_as_cs

◆ my_charset_utf8mb4_ja_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_ja_0900_as_cs

◆ my_charset_utf8mb4_ja_0900_as_cs_ks

CHARSET_INFO my_charset_utf8mb4_ja_0900_as_cs_ks

◆ my_charset_utf8mb4_la_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_la_0900_ai_ci

◆ my_charset_utf8mb4_la_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_la_0900_as_cs

◆ my_charset_utf8mb4_latvian_uca_ci

CHARSET_INFO my_charset_utf8mb4_latvian_uca_ci

◆ my_charset_utf8mb4_lithuanian_uca_ci

CHARSET_INFO my_charset_utf8mb4_lithuanian_uca_ci

◆ my_charset_utf8mb4_lt_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_lt_0900_ai_ci

◆ my_charset_utf8mb4_lt_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_lt_0900_as_cs

◆ my_charset_utf8mb4_lv_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_lv_0900_ai_ci

◆ my_charset_utf8mb4_lv_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_lv_0900_as_cs

◆ my_charset_utf8mb4_persian_uca_ci

CHARSET_INFO my_charset_utf8mb4_persian_uca_ci

◆ my_charset_utf8mb4_pl_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_pl_0900_ai_ci

◆ my_charset_utf8mb4_pl_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_pl_0900_as_cs

◆ my_charset_utf8mb4_polish_uca_ci

CHARSET_INFO my_charset_utf8mb4_polish_uca_ci

◆ my_charset_utf8mb4_ro_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_ro_0900_ai_ci

◆ my_charset_utf8mb4_ro_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_ro_0900_as_cs

◆ my_charset_utf8mb4_roman_uca_ci

CHARSET_INFO my_charset_utf8mb4_roman_uca_ci

◆ my_charset_utf8mb4_romanian_uca_ci

CHARSET_INFO my_charset_utf8mb4_romanian_uca_ci

◆ my_charset_utf8mb4_ru_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_ru_0900_ai_ci

◆ my_charset_utf8mb4_ru_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_ru_0900_as_cs

◆ my_charset_utf8mb4_sinhala_uca_ci

CHARSET_INFO my_charset_utf8mb4_sinhala_uca_ci

◆ my_charset_utf8mb4_sk_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_sk_0900_ai_ci

◆ my_charset_utf8mb4_sk_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_sk_0900_as_cs

◆ my_charset_utf8mb4_sl_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_sl_0900_ai_ci

◆ my_charset_utf8mb4_sl_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_sl_0900_as_cs

◆ my_charset_utf8mb4_slovak_uca_ci

CHARSET_INFO my_charset_utf8mb4_slovak_uca_ci

◆ my_charset_utf8mb4_slovenian_uca_ci

CHARSET_INFO my_charset_utf8mb4_slovenian_uca_ci

◆ my_charset_utf8mb4_spanish2_uca_ci

CHARSET_INFO my_charset_utf8mb4_spanish2_uca_ci

◆ my_charset_utf8mb4_spanish_uca_ci

CHARSET_INFO my_charset_utf8mb4_spanish_uca_ci

◆ my_charset_utf8mb4_sv_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_sv_0900_ai_ci

◆ my_charset_utf8mb4_sv_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_sv_0900_as_cs

◆ my_charset_utf8mb4_swedish_uca_ci

CHARSET_INFO my_charset_utf8mb4_swedish_uca_ci

◆ my_charset_utf8mb4_tr_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_tr_0900_ai_ci

◆ my_charset_utf8mb4_tr_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_tr_0900_as_cs

◆ my_charset_utf8mb4_turkish_uca_ci

CHARSET_INFO my_charset_utf8mb4_turkish_uca_ci

◆ my_charset_utf8mb4_unicode_520_ci

CHARSET_INFO my_charset_utf8mb4_unicode_520_ci

◆ my_charset_utf8mb4_unicode_ci

CHARSET_INFO my_charset_utf8mb4_unicode_ci

◆ my_charset_utf8mb4_vi_0900_ai_ci

CHARSET_INFO my_charset_utf8mb4_vi_0900_ai_ci

◆ my_charset_utf8mb4_vi_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_vi_0900_as_cs

◆ my_charset_utf8mb4_vietnamese_ci

CHARSET_INFO my_charset_utf8mb4_vietnamese_ci

◆ my_charset_utf8mb4_zh_0900_as_cs

CHARSET_INFO my_charset_utf8mb4_zh_0900_as_cs

◆ my_collation_any_uca_handler

MY_COLLATION_HANDLER my_collation_any_uca_handler
Initial value:
= {
static int my_strcasecmp_uca(const CHARSET_INFO *cs, const char *s, const char *t)
Definition: ctype-uca.cc:2356
static void my_hash_sort_any_uca(const CHARSET_INFO *cs, const uchar *s, size_t slen, uint64 *n1, uint64 *n2)
Definition: ctype-uca.cc:4869
static int my_strnncoll_any_uca(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
Definition: ctype-uca.cc:4846
static int my_strnncollsp_any_uca(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
Definition: ctype-uca.cc:4859
static size_t my_strnxfrm_any_uca(const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
Definition: ctype-uca.cc:4879
static void my_coll_uninit_uca(CHARSET_INFO *cs)
Definition: ctype-uca.cc:4824
static int my_wildcmp_uca(const CHARSET_INFO *cs, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
Definition: ctype-uca.cc:2402
static bool my_coll_init_uca(CHARSET_INFO *cs, MY_CHARSET_LOADER *loader)
Definition: ctype-uca.cc:4838
size_t my_strnxfrmlen_simple(const CHARSET_INFO *, size_t)
Definition: ctype-simple.cc:63
uint my_instr_mb(const CHARSET_INFO *, const char *b, size_t b_length, const char *s, size_t s_length, my_match_t *match, uint nmatch)
Definition: ctype-mb.cc:361
bool my_like_range_mb(const CHARSET_INFO *cs, const char *ptr, size_t ptr_length, char escape, char w_one, char w_many, size_t res_length, char *min_str, char *max_str, size_t *min_length, size_t *max_length)
Definition: ctype-mb.cc:660
bool my_propagate_complex(const CHARSET_INFO *cs, const uchar *str, size_t len)
Definition: ctype-simple.cc:1489

◆ my_collation_gb18030_uca_handler

◆ my_collation_uca_900_handler

MY_COLLATION_HANDLER my_collation_uca_900_handler
Initial value:
= {
static size_t my_strnxfrm_uca_900(const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
Definition: ctype-uca.cc:5081
static size_t my_strnxfrmlen_uca_900(const CHARSET_INFO *cs, size_t len)
Definition: ctype-uca.cc:5123
bool my_propagate_uca_900(const CHARSET_INFO *cs, const uchar *str, size_t length)
Definition: ctype-uca.cc:5035
static int my_strnncollsp_uca_900(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
Definition: ctype-uca.cc:4933
static int my_strnncoll_uca_900(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
Definition: ctype-uca.cc:4892
static void my_hash_sort_uca_900(const CHARSET_INFO *cs, const uchar *s, size_t slen, uint64 *n1, uint64 *)
Definition: ctype-uca.cc:4987

◆ my_collation_ucs2_uca_handler

MY_COLLATION_HANDLER my_collation_ucs2_uca_handler
Initial value:
= {
nullptr,
static int my_strnncollsp_ucs2_uca(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
Definition: ctype-uca.cc:5163
static int my_strnncoll_ucs2_uca(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
Definition: ctype-uca.cc:5155
static void my_hash_sort_ucs2_uca(const CHARSET_INFO *cs, const uchar *s, size_t slen, uint64 *n1, uint64 *n2)
Definition: ctype-uca.cc:5169
static size_t my_strnxfrm_ucs2_uca(const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
Definition: ctype-uca.cc:5175
bool my_like_range_generic(const CHARSET_INFO *cs, const char *ptr, size_t ptr_length, char escape, char w_one, char w_many, size_t res_length, char *min_str, char *max_str, size_t *min_length, size_t *max_length)
Calculate min_str and max_str that ranges a LIKE string.
Definition: ctype-mb.cc:808

◆ my_collation_utf16_uca_handler

◆ my_collation_utf32_uca_handler

◆ my_collation_utf8mb4_0900_bin_handler

MY_COLLATION_HANDLER my_collation_utf8mb4_0900_bin_handler
static
Initial value:
= {
nullptr,
nullptr,
static int my_strnncollsp_utf8mb4_0900_bin(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen)
Definition: ctype-uca.cc:11414
static size_t my_strnxfrm_utf8mb4_0900_bin(const CHARSET_INFO *cs, uchar *dst, size_t dstlen, uint nweights, const uchar *src, size_t srclen, uint flags)
Definition: ctype-uca.cc:11396
int my_strnncoll_mb_bin(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
Definition: ctype-mb.cc:409
int my_strcasecmp_mb_bin(const CHARSET_INFO *cs, const char *s, const char *t)
Definition: ctype-mb.cc:560
void my_hash_sort_mb_bin(const CHARSET_INFO *cs, const uchar *key, size_t len, uint64 *nr1, uint64 *nr2)
Definition: ctype-mb.cc:565
int my_wildcmp_mb_bin(const CHARSET_INFO *cs, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
Definition: ctype-mb.cc:1041
bool my_propagate_simple(const CHARSET_INFO *cs, const uchar *str, size_t len)
Definition: ctype-simple.cc:1483

◆ my_uca_v400

MY_UCA_INFO my_uca_v400
Initial value:
= {
0xFFFF,
uca_length, uca_weight, false, nullptr,
nullptr,
0x0009,
0xA48C,
0x0332,
0x20EA,
0x0000,
0xFE73,
0x0000,
0xFE73,
0x0000,
0x0000,
0x0009,
0x2183,
0,
0,
0
}
@ UCA_V400
Definition: str_uca_type.h:37
uchar uca_length[256]
Definition: uca_data.h:6425
uint16 * uca_weight[256]
Definition: uca_data.h:6443

◆ my_uca_v520

MY_UCA_INFO my_uca_v520

◆ nochar

constexpr uint16 nochar[] = {0, 0}
staticconstexpr

◆ persian

const char persian[]
static
Initial value:
=
"& \\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 "
" & \\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"

◆ pl_cldr_30

const char pl_cldr_30[]
static
Initial value:
=
"&A < \\u0105 <<< \\u0104 "
"&C < \\u0107 <<< \\u0106 "
"&E < \\u0119 <<< \\u0118 "
"&L < \\u0142 <<< \\u0141 "
"&N < \\u0144 <<< \\u0143 "
"&O < \\u00F3 <<< \\u00D3 "
"&S < \\u015B <<< \\u015A "
"&Z < \\u017A <<< \\u0179 < \\u017C <<< \\u017B"

◆ polish

const char polish[]
static
Initial value:
=
"& A < \\u0105 <<< \\u0104 "
"& C < \\u0107 <<< \\u0106 "
"& E < \\u0119 <<< \\u0118 "
"& L < \\u0142 <<< \\u0141 "
"& N < \\u0144 <<< \\u0143 "
"& O < \\u00F3 <<< \\u00D3 "
"& S < \\u015B <<< \\u015A "
"& Z < \\u017A <<< \\u0179 < \\u017C <<< \\u017B"

◆ ro_cldr_30

const char ro_cldr_30[]
static
Initial value:
=
"&A < \\u0103 <<< \\u0102 < \\u00E2 <<< \\u00C2 "
"&I < \\u00EE <<< \\u00CE "
"&S < \\u015F = \\u0219 <<< \\u015E = \\u0218 "
"&T < \\u0163 = \\u021B <<< \\u0162 = \\u021A"

◆ roman

const char roman[]
static
Initial value:
=
"& I << j <<< J "
"& V << u <<< U "

◆ romanian

const char romanian[]
static
Initial value:
=
"& A < \\u0103 <<< \\u0102 < \\u00E2 <<< \\u00C2 "
"& I < \\u00EE <<< \\u00CE "
"& S < \\u0219 <<< \\u0218 << \\u015F <<< \\u015E "
"& T < \\u021B <<< \\u021A << \\u0163 <<< \\u0162 "

◆ ru_coll_param

Coll_param ru_coll_param
static
Initial value:
= {&ru_reorder_param, false ,
static Reorder_param ru_reorder_param
Definition: ctype-uca.cc:731

◆ ru_reorder_param

Reorder_param ru_reorder_param
static
Initial value:
= {
{CHARGRP_CYRILLIC, CHARGRP_NONE}, {{{0, 0}, {0, 0}}}, 0, 0}

◆ sinhala

const char sinhala[]
static
Initial value:
=
"& \\u0D96 < \\u0D82 < \\u0D83 < \\u0D9A < \\u0D9B < \\u0D9C < \\u0D9D"
"< \\u0D9E < \\u0D9F < \\u0DA0 < \\u0DA1 < \\u0DA2 < \\u0DA3"
"< \\u0DA5 < \\u0DA4 < \\u0DA6"
"< \\u0DA7 < \\u0DA8 < \\u0DA9 < \\u0DAA < \\u0DAB < \\u0DAC"
"< \\u0DAD < \\u0DAE < \\u0DAF < \\u0DB0 < \\u0DB1"
"< \\u0DB3 < \\u0DB4 < \\u0DB5 < \\u0DB6 < \\u0DB7 < \\u0DB8"
"< \\u0DB9 < \\u0DBA < \\u0DBB < \\u0DBD < \\u0DC0 < \\u0DC1"
"< \\u0DC2 < \\u0DC3 < \\u0DC4 < \\u0DC5 < \\u0DC6"
"< \\u0DCF"
"< \\u0DD0 < \\u0DD1 < \\u0DD2 < \\u0DD3 < \\u0DD4 < \\u0DD6"
"< \\u0DD8 < \\u0DF2 < \\u0DDF < \\u0DF3 < \\u0DD9 < \\u0DDA"
"< \\u0DDB < \\u0DDC < \\u0DDD < \\u0DDE < \\u0DCA"

◆ sk_cldr_30

const char sk_cldr_30[]
static
Initial value:
=
"&A < \\u00E4 <<< \\u00C4 "
"&C < \\u010D <<< \\u010C "
"&H < ch <<< cH <<< Ch <<< CH "
"&O < \\u00F4 <<< \\u00D4 "
"&R < \\u0159 <<< \\u0158 "
"&S < \\u0161 <<< \\u0160 "
"&Z < \\u017E <<< \\u017D"

◆ sl_cldr_30

const char sl_cldr_30[]
static
Initial value:
=
"&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106 "
"&D < \\u0111 <<< \\u0110 "
"&S < \\u0161 <<< \\u0160 "
"&Z < \\u017E <<< \\u017D"

◆ slovak

const char slovak[]
static
Initial value:
=
"& A < \\u00E4 <<< \\u00C4"
"& C < \\u010D <<< \\u010C"
"& H < ch <<< Ch <<< CH"
"& O < \\u00F4 <<< \\u00D4"
"& S < \\u0161 <<< \\u0160"
"& Z < \\u017E <<< \\u017D"

◆ slovenian

const char slovenian[]
static
Initial value:
=
"& C < \\u010D <<< \\u010C "
"& S < \\u0161 <<< \\u0160 "
"& Z < \\u017E <<< \\u017D "

◆ spanish

const char spanish[] = "& N < \\u00F1 <<< \\u00D1 "
static

◆ spanish2

const char spanish2[]
static
Initial value:
=
"&C < ch <<< Ch <<< CH"
"&L < ll <<< Ll <<< LL"
"&N < \\u00F1 <<< \\u00D1"

◆ sv_cldr_30

const char sv_cldr_30[]
static
Initial value:
=
"& D << \\u0111 <<< \\u0110 << \\u00F0 <<< \\u00D0 "
"& t <<< \\u00FE/h "
"& T <<< \\u00DE/H "
"& Y << \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170 "
"&[before 1]\\u01C0 < \\u00E5 <<< \\u00C5 < \\u00E4 <<< \\u00C4 "
"<< \\u00E6 <<< \\u00C6 << \\u0119 <<< \\u0118 "
"< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 "
"<< \\u0151 <<< \\u0150 << \\u0153 <<< \\u0152 "
"<< \\u00F4 <<< \\u00D4"

◆ swedish

const char swedish[]
static
Initial value:
=
"& Y <<\\u00FC <<< \\u00DC "
"& Z < \\u00E5 <<< \\u00C5 "
"< \\u00E4 <<< \\u00C4 << \\u00E6 <<< \\u00C6 "
"< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 "

◆ tr_cldr_30

const char tr_cldr_30[]
static
Initial value:
=
"& C < \\u00E7 <<< \\u00C7 "
"& G < \\u011F <<< \\u011E "
"&[before 1]i < \\u0131 <<< I "
"& i <<< \\u0130 "
"& O < \\u00F6 <<< \\u00D6 "
"& S < \\u015F <<< \\u015E "
"& U < \\u00FC <<< \\u00DC "

◆ turkish

const char turkish[]
static
Initial value:
=
"& C < \\u00E7 <<< \\u00C7 "
"& G < \\u011F <<< \\u011E "
"& H < \\u0131 <<< \\u0049 "
"& O < \\u00F6 <<< \\u00D6 "
"& S < \\u015F <<< \\u015E "
"& U < \\u00FC <<< \\u00DC "

◆ vi_cldr_30

const char vi_cldr_30[]
static
Initial value:
=
"&\\u0300 << \\u0309 << \\u0303 << \\u0301 << \\u0323 "
"&a < \\u0103 <<< \\u0102 < \\u00E2 <<< \\u00C2 "
"&d < \\u0111 <<< \\u0110 "
"&e < \\u00EA <<< \\u00CA "
"&o < \\u00F4 <<< \\u00D4 < \\u01A1 <<< \\u01A0 "
"&u < \\u01B0 <<< \\u01AF"

◆ vi_coll_param

Coll_param vi_coll_param = {nullptr, true, CASE_FIRST_OFF}
static

◆ vietnamese

const char vietnamese[]
static

◆ zh_coll_param

Coll_param zh_coll_param = {&zh_reorder_param, false, CASE_FIRST_OFF}
static

◆ zh_reorder_param

Reorder_param zh_reorder_param
static
Initial value:
= {
{CHARGRP_NONE}, {{{0x1C47, 0x54A3}, {0xBDC4, 0xF620}}}, 1, 0x54A3}