diff options
author | unknown <marko@hundin.mysql.fi> | 2005-05-13 12:55:59 +0300 |
---|---|---|
committer | unknown <marko@hundin.mysql.fi> | 2005-05-13 12:55:59 +0300 |
commit | 67d0502bcf05ee19edf0710ef153ca6b68244b26 (patch) | |
tree | f7a65769b2ebf26f3ccd3ac5abe47be27756c038 /innobase/data | |
parent | 807a543b8b795adb1b9c6546d1e2a044ecf1950e (diff) | |
download | mariadb-git-67d0502bcf05ee19edf0710ef153ca6b68244b26.tar.gz |
InnoDB ON UPDATE CASCADE fixes:
Enforce maximum char_length of UTF-8 data (Bug #10409).
Pad UTF-8 variable-length CHAR columns with 0x20.
Pad UCS2 CHAR columns with 0x0020 (Bug #10511).
innobase/data/data0type.c:
dtype_get_at_most_n_mbchars(): Avoid division by zero in assertion
when this function is called with dtype->mbmaxlen==0
innobase/row/row0ins.c:
row_ins_cascade_calc_update_vec(): Enforce maximum char_length of
UTF-8 data (Bug #10409).
Pad UTF-8 CHAR columns with 0x20.
Pad UCS2 CHAR columns with 0x0020 (Bug #10511).
Diffstat (limited to 'innobase/data')
-rw-r--r-- | innobase/data/data0type.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/innobase/data/data0type.c b/innobase/data/data0type.c index 36b0f9603e5..d4264ad2926 100644 --- a/innobase/data/data0type.c +++ b/innobase/data/data0type.c @@ -63,9 +63,10 @@ dtype_get_at_most_n_mbchars( { #ifndef UNIV_HOTBACKUP ut_a(data_len != UNIV_SQL_NULL); - ut_a(!(prefix_len % dtype->mbmaxlen)); + ut_ad(!dtype->mbmaxlen || !(prefix_len % dtype->mbmaxlen)); if (dtype->mbminlen != dtype->mbmaxlen) { + ut_a(!(prefix_len % dtype->mbmaxlen)); return(innobase_get_at_most_n_mbchars( dtype_get_charset_coll(dtype->prtype), prefix_len, data_len, str)); |