98
99
#define MY_CS_BINSORT 16 /* if binary sort order */
99
100
#define MY_CS_PRIMARY 32 /* if primary collation */
100
101
#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
101
#define MY_CS_UNICODE 128 /* is a charset is full unicode */
102
#define MY_CS_UNICODE 128 /* is a charset is BMP Unicode */
102
103
#define MY_CS_READY 256 /* if a charset is initialized */
103
104
#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
104
105
#define MY_CS_CSSORT 1024 /* if case sensitive sort order */
105
106
#define MY_CS_HIDDEN 2048 /* don't display in SHOW */
106
107
#define MY_CS_PUREASCII 4096 /* if a charset is pure ascii */
107
108
#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */
109
#define MY_CS_UNICODE_SUPPLEMENT 16384 /* Non-BMP Unicode characters */
108
110
#define MY_CHARSET_UNDEFINED 0
110
112
/* Character repertoire flags */
341
343
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin;
344
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1;
345
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename;
342
347
extern CHARSET_INFO my_charset_big5_chinese_ci;
343
348
extern CHARSET_INFO my_charset_big5_bin;
344
349
extern CHARSET_INFO my_charset_cp932_japanese_ci;
348
353
extern CHARSET_INFO my_charset_eucjpms_bin;
349
354
extern CHARSET_INFO my_charset_euckr_korean_ci;
350
355
extern CHARSET_INFO my_charset_euckr_bin;
351
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename;
352
356
extern CHARSET_INFO my_charset_gb2312_chinese_ci;
353
357
extern CHARSET_INFO my_charset_gb2312_bin;
354
358
extern CHARSET_INFO my_charset_gbk_chinese_ci;
355
359
extern CHARSET_INFO my_charset_gbk_bin;
356
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1;
357
360
extern CHARSET_INFO my_charset_latin1_german2_ci;
358
361
extern CHARSET_INFO my_charset_latin1_bin;
359
362
extern CHARSET_INFO my_charset_latin2_czech_ci;
366
369
extern CHARSET_INFO my_charset_ucs2_unicode_ci;
367
370
extern CHARSET_INFO my_charset_ujis_japanese_ci;
368
371
extern CHARSET_INFO my_charset_ujis_bin;
369
extern CHARSET_INFO my_charset_utf8mb3_bin;
372
extern CHARSET_INFO my_charset_utf16_bin;
373
extern CHARSET_INFO my_charset_utf16_general_ci;
374
extern CHARSET_INFO my_charset_utf16_unicode_ci;
375
extern CHARSET_INFO my_charset_utf32_bin;
376
extern CHARSET_INFO my_charset_utf32_general_ci;
377
extern CHARSET_INFO my_charset_utf32_unicode_ci;
370
379
extern CHARSET_INFO my_charset_utf8mb3_general_ci;
371
380
extern CHARSET_INFO my_charset_utf8mb3_unicode_ci;
381
extern CHARSET_INFO my_charset_utf8mb3_bin;
382
extern CHARSET_INFO my_charset_utf8mb4_bin;
383
extern CHARSET_INFO my_charset_utf8mb4_general_ci;
384
extern CHARSET_INFO my_charset_utf8mb4_unicode_ci;
373
#define MY_UTF8MB3 "utf8"
374
386
#define my_charset_utf8_general_ci my_charset_utf8mb3_general_ci
387
#define my_charset_utf8_unicode_ci my_charset_utf8mb3_unicode_ci
375
388
#define my_charset_utf8_bin my_charset_utf8mb3_bin
390
#define MY_UTF8MB3 "utf8"
391
#define MY_UTF8MB4 "utf8mb4"
378
394
/* declarations for simple charsets */
379
395
extern size_t my_strnxfrm_simple(CHARSET_INFO *,
471
487
char *min_str, char *max_str,
472
488
size_t *min_length, size_t *max_length);
490
my_bool my_like_range_utf16(CHARSET_INFO *cs,
491
const char *ptr, size_t ptr_length,
492
pbool escape, pbool w_one, pbool w_many,
494
char *min_str, char *max_str,
495
size_t *min_length, size_t *max_length);
497
my_bool my_like_range_utf32(CHARSET_INFO *cs,
498
const char *ptr, size_t ptr_length,
499
pbool escape, pbool w_one, pbool w_many,
501
char *min_str, char *max_str,
502
size_t *min_length, size_t *max_length);
475
504
int my_wildcmp_8bit(CHARSET_INFO *,
476
505
const char *str,const char *str_end,