PS-10067 [8.0]: Consume per-field metadata with Rdb_convert_to_record_key_decoder::skip
#5707
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Index fields consist of many
Rdb_field_packing
records.Each record consist of:
Rdb_key_field_iterator::next()
callsRdb_convert_to_record_key_decoder::skip()
wheniterating thru index fields. For data created with
make_unpack_unknown_varlength()
theskip function moves forward only a key slice reader but an unpack information reader
should also be moved forward (per-field metadata (5) should be consumed).
The solution is based on
unpack_unknown_varlength
at https://github.com/percona/percona-server/blob/4f842346452d/storage/rocksdb/rdb_datadic.cc#L3571-L3588It simulates unpacking and skips unpacked data.