diff options
author | Alexander Barkov <bar@mariadb.org> | 2015-03-13 16:51:36 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2015-03-13 16:51:36 +0400 |
commit | 197afb413fcc9f06b5e5e6ef41ce980d108b354f (patch) | |
tree | 7052fbaa1bf1af1c5c849e8fda4a3a790af09b25 /strings/ctype-euc_kr.c | |
parent | 702fba1511c90ea9c72b6c00122e0f31a05237b4 (diff) | |
download | mariadb-git-197afb413fcc9f06b5e5e6ef41ce980d108b354f.tar.gz |
MDEV-6566 Different INSERT behaviour on bad bytes with and without character set conversion
Diffstat (limited to 'strings/ctype-euc_kr.c')
-rw-r--r-- | strings/ctype-euc_kr.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index eab9539ad45..a2c95bf77c8 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -204,7 +204,7 @@ static const uchar sort_order_euc_kr[]= #define MY_FUNCTION_NAME(x) my_ ## x ## _euckr #define IS_MB2_CHAR(x,y) (iseuc_kr_head(x) && iseuc_kr_tail(y)) -#define WELL_FORMED_LEN +#define DEFINE_ASIAN_ROUTINES #include "ctype-mb.ic" @@ -9928,6 +9928,9 @@ my_mb_wc_euc_kr(CHARSET_INFO *cs __attribute__((unused)), if (s+2>e) return MY_CS_TOOSMALL2; + if (!IS_MB2_CHAR(hi, s[1])) + return MY_CS_ILSEQ; + if (!(pwc[0]=func_ksc5601_uni_onechar((hi<<8)+s[1]))) return -2; @@ -9979,7 +9982,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_strtoll10_8bit, my_strntoull10rnd_8bit, my_scan_8bit, - my_copy_abort_mb, + my_charlen_euckr, + my_well_formed_char_length_euckr, + my_copy_fix_mb, }; |