mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
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
1 changed files with 13 additions and 1 deletions
|
|
@ -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
|
||||
ulint
|
||||
rec_fold(
|
||||
|
|
@ -963,6 +964,7 @@ rec_fold(
|
|||
byte* data;
|
||||
ulint len;
|
||||
ulint fold;
|
||||
ulint n_fields_rec;
|
||||
|
||||
ut_ad(rec_validate(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: */
|
||||
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);
|
||||
|
||||
for (i = 0; i < n_fields; i++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue