rem0rec.ic:
Remove a theoretical overrun in adaptive hash index building innobase/include/rem0rec.ic: Remove a theoretical overrun in adaptive hash index building
This commit is contained in:
parent
0de5d9930f
commit
8e6ac521eb
@ -947,7 +947,8 @@ rec_get_converted_size(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
Folds a prefix of a physical record to a ulint. */
|
Folds a prefix of a physical record to a ulint. Folds only existing fields,
|
||||||
|
that is, checks that we do not run out of the record. */
|
||||||
UNIV_INLINE
|
UNIV_INLINE
|
||||||
ulint
|
ulint
|
||||||
rec_fold(
|
rec_fold(
|
||||||
@ -963,6 +964,7 @@ rec_fold(
|
|||||||
byte* data;
|
byte* data;
|
||||||
ulint len;
|
ulint len;
|
||||||
ulint fold;
|
ulint fold;
|
||||||
|
ulint n_fields_rec;
|
||||||
|
|
||||||
ut_ad(rec_validate(rec));
|
ut_ad(rec_validate(rec));
|
||||||
ut_ad(n_fields <= rec_get_n_fields(rec));
|
ut_ad(n_fields <= rec_get_n_fields(rec));
|
||||||
@ -971,6 +973,16 @@ rec_fold(
|
|||||||
/* Only the page supremum and infimum records have 1 field: */
|
/* Only the page supremum and infimum records have 1 field: */
|
||||||
ut_ad(rec_get_n_fields(rec) > 1);
|
ut_ad(rec_get_n_fields(rec) > 1);
|
||||||
|
|
||||||
|
n_fields_rec = rec_get_n_fields(rec);
|
||||||
|
|
||||||
|
if (n_fields > n_fields_rec) {
|
||||||
|
n_fields = n_fields_rec;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n_fields == n_fields_rec) {
|
||||||
|
n_bytes = 0;
|
||||||
|
}
|
||||||
|
|
||||||
fold = ut_fold_dulint(tree_id);
|
fold = ut_fold_dulint(tree_id);
|
||||||
|
|
||||||
for (i = 0; i < n_fields; i++) {
|
for (i = 0; i < n_fields; i++) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user