diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-11-20 14:12:53 +0800 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-11-20 14:12:53 +0800 |
commit | 6cedb671e99038f1a10e0d8504f835aaabed9780 (patch) | |
tree | 62234b9b0a1380114e584c4e2c2c3ca3f863e52b /storage/innobase/rem/rem0rec.cc | |
parent | 1c9240633792ecce562358d86cd8d2c18b94ae32 (diff) | |
download | mariadb-git-6cedb671e99038f1a10e0d8504f835aaabed9780.tar.gz |
MDEV-21088 Table cannot be loaded after instant ADD/DROP COLUMN
btr_cur_instant_init_low(): Accurately parse the metadata record
header for ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPACT. CHAR columns
used to be unnecessarily written as nonempty strings of bytes.
Diffstat (limited to 'storage/innobase/rem/rem0rec.cc')
-rw-r--r-- | storage/innobase/rem/rem0rec.cc | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/storage/innobase/rem/rem0rec.cc b/storage/innobase/rem/rem0rec.cc index 1f0f661448c..91fdddeaf07 100644 --- a/storage/innobase/rem/rem0rec.cc +++ b/storage/innobase/rem/rem0rec.cc @@ -231,24 +231,6 @@ rec_get_n_extern_new( return(n_extern); } -/** Get the added field count in a REC_STATUS_INSTANT record. -@param[in,out] header variable header of a REC_STATUS_INSTANT record -@return number of added fields */ -static inline unsigned rec_get_n_add_field(const byte*& header) -{ - unsigned n_fields_add = *--header; - if (n_fields_add < 0x80) { - ut_ad(rec_get_n_add_field_len(n_fields_add) == 1); - return n_fields_add; - } - - n_fields_add &= 0x7f; - n_fields_add |= unsigned(*--header) << 7; - ut_ad(n_fields_add < REC_MAX_N_FIELDS); - ut_ad(rec_get_n_add_field_len(n_fields_add) == 2); - return n_fields_add; -} - /** Format of a leaf-page ROW_FORMAT!=REDUNDANT record */ enum rec_leaf_format { /** Temporary file record */ |