MDEV-20814 Assertion index->is_instant() failed on trivial upgrade from 10.1

rec_init_offsets(): Relax the assertion that was added in
commit 01f45becd1
to catch ROW_FORMAT=REDUNDANT records that have fewer fields
than expected.

This assertion would fail when accessing the records of the
built-in InnoDB table SYS_INDEXES. The column MERGE_THRESHOLD
had been effectively instantly added in MariaDB Server 10.2
(and MySQL 5.7), but is_instant() does not hold for that index.
Relax the assertion, so that it will not fail in this case.
This commit is contained in:
Marko Mäkelä 2019-10-12 21:58:34 +03:00
parent bb450b1fed
commit fa6c606257

View file

@ -742,7 +742,9 @@ resolved:
}
if (i < rec_offs_n_fields(offsets)) {
ut_ad(index->is_instant());
ut_ad(index->is_instant()
|| i + (index->id == DICT_INDEXES_ID)
== rec_offs_n_fields(offsets));
offs = (rec_offs_base(offsets)[i] & REC_OFFS_MASK)
| REC_OFFS_DEFAULT;