Hi, Sergei!

ha_partition::handle_ordered_index_scan() stores records in m_ordered_rec_buffer. Then TABLE::update_virtual_fields() updates blob buffer and frees the old one. Then ha_partition::return_top_record() returns record from m_ordered_rec_buffer with stale blob pointer. What should we do with this? I propose to duplicate blob buffer when record gets into m_ordered_rec_buffer.

More details can be found here:

https://github.com/tempesta-tech/mariadb/issues/581

--
All the best,

Aleksey Midenkov
@midenok