summaryrefslogtreecommitdiff
path: root/innobase/btr
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2004-12-03 17:57:44 +0200
committerunknown <marko@hundin.mysql.fi>2004-12-03 17:57:44 +0200
commitf09c8b35f4d36de42be7ced51f1200727385ce79 (patch)
treeb32c4cc4107240ca3ea5b1f70a93f02fa49fc0f5 /innobase/btr
parent6865b71c73d2af3e5b06bc92c563aeb3ba6db4ff (diff)
downloadmariadb-git-f09c8b35f4d36de42be7ced51f1200727385ce79.tar.gz
InnoDB: Fix ctype_utf8 test failure caused by the new record format.
innobase/btr/btr0btr.c: Cache the value of dtype_get_fixed_size(type) in order to avoid repeated calls to an external function innobase_is_mb_cset() innobase/include/data0type.ic: Declare innobase_is_mb_cset(). dtype_get_fixed_size(): Invoke innobase_is_mb_cset() for DATA_MYSQL. innobase/row/row0ins.c: Cache the value of dtype_get_fixed_size(type) in order to avoid repeated calls to an external function innobase_is_mb_cset() innobase/row/row0sel.c: row_search_for_mysql(): Added a missing rec_reget_offsets() call that caused an InnoDB debug assertion failure in ctype_utf8 test. sql/ha_innodb.cc: Define innobase_is_mb_cset().
Diffstat (limited to 'innobase/btr')
-rw-r--r--innobase/btr/btr0btr.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/innobase/btr/btr0btr.c b/innobase/btr/btr0btr.c
index 06602c856fa..c911124e705 100644
--- a/innobase/btr/btr0btr.c
+++ b/innobase/btr/btr0btr.c
@@ -2515,6 +2515,7 @@ btr_index_rec_validate(
for (i = 0; i < n; i++) {
dtype_t* type = dict_index_get_nth_type(index, i);
+ ulint fixed_size = dtype_get_fixed_size(type);
rec_get_nth_field(rec, offsets, i, &len);
@@ -2522,8 +2523,8 @@ btr_index_rec_validate(
their type is CHAR. */
if ((dict_index_get_nth_field(index, i)->prefix_len == 0
- && len != UNIV_SQL_NULL && dtype_is_fixed_size(type)
- && len != dtype_get_fixed_size(type))
+ && len != UNIV_SQL_NULL && fixed_size
+ && len != fixed_size)
||
(dict_index_get_nth_field(index, i)->prefix_len > 0
&& len != UNIV_SQL_NULL