From 91173f986373e4f5f134a2351a80d8763e5157e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 12 Dec 2018 13:30:40 +0200 Subject: [PATCH] fts_is_charset_cjk(): Avoid referencing global symbols References to global symbols prevent InnoDB from being built as a dynamic plugin on Windows. Refer to CHARSET_INFO::number, because that is what InnoDB is already persistently storing in its data dictionary. --- storage/innobase/include/fts0types.ic | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/storage/innobase/include/fts0types.ic b/storage/innobase/include/fts0types.ic index 18bc87213fc..6c5542309bb 100644 --- a/storage/innobase/include/fts0types.ic +++ b/storage/innobase/include/fts0types.ic @@ -108,19 +108,21 @@ innobase_strnxfrm( @param[in] cs charset @retval true if the charset is cjk @retval false if not. */ -UNIV_INLINE -bool -fts_is_charset_cjk( - const CHARSET_INFO* cs) +inline bool fts_is_charset_cjk(const CHARSET_INFO* cs) { - return cs == &my_charset_gb2312_chinese_ci - || cs == &my_charset_gbk_chinese_ci - || cs == &my_charset_big5_chinese_ci - || cs == &my_charset_ujis_japanese_ci - || cs == &my_charset_sjis_japanese_ci - || cs == &my_charset_cp932_japanese_ci - || cs == &my_charset_eucjpms_japanese_ci - || cs == &my_charset_euckr_korean_ci; + switch (cs->number) { + case 24: /* my_charset_gb2312_chinese_ci */ + case 28: /* my_charset_gbk_chinese_ci */ + case 1: /* my_charset_big5_chinese_ci */ + case 12: /* my_charset_ujis_japanese_ci */ + case 13: /* my_charset_sjis_japanese_ci */ + case 95: /* my_charset_cp932_japanese_ci */ + case 97: /* my_charset_eucjpms_japanese_ci */ + case 19: /* my_charset_euckr_korean_ci */ + return true; + default: + return false; + } } /** Select the FTS auxiliary index for the given character by range.