summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2004-12-31 15:05:41 +0200
committerunknown <heikki@hundin.mysql.fi>2004-12-31 15:05:41 +0200
commitcd47cb56fd76a47def597e7b486b89c65a65481d (patch)
tree997940f55b675e9a6ab279f4187f6d61a233810e /innobase
parent0428fcb89ea71ef397b26c65e11ef77097a3a83f (diff)
downloadmariadb-git-cd47cb56fd76a47def597e7b486b89c65a65481d.tar.gz
row0upd.c:
Fix a little bug in InnoDB: we looked at the physical size of a stored SQL NULL value from a wrong field in the index; this has probably caused no bugs visible to the user, only caused some extra space usage in some rare cases; we may later backport the fix to 4.0 innobase/row/row0upd.c: Fix a little bug in InnoDB: we looked at the physical size of a stored SQL NULL value from a wrong field in the index; this has probably caused no bugs visible to the user, only caused some extra space usage in some rare cases; we may later backport the fix to 4.0
Diffstat (limited to 'innobase')
-rw-r--r--innobase/row/row0upd.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/innobase/row/row0upd.c b/innobase/row/row0upd.c
index a449b9f1736..9192f6dc692 100644
--- a/innobase/row/row0upd.c
+++ b/innobase/row/row0upd.c
@@ -381,8 +381,14 @@ row_upd_changes_field_size_or_external(
new_len = new_val->len;
if (new_len == UNIV_SQL_NULL) {
+ /* A bug fixed on Dec 31st, 2004: we looked at the
+ SQL NULL size from the wrong field! We may backport
+ this fix also to 4.0. The merge to 5.0 will be made
+ manually immediately after we commit this to 4.1. */
+
new_len = dtype_get_sql_null_size(
- dict_index_get_nth_type(index, i));
+ dict_index_get_nth_type(index,
+ upd_field->field_no));
}
old_len = rec_get_nth_field_size(rec, upd_field->field_no);