[MDEV-22399] Remove multiple calls to enable and disable Handler::keyread and perform it after the plan refinement phase is done Created: 2020-04-28  Updated: 2020-06-09  Resolved: 2020-06-09

Status: Closed
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: None
Fix Version/s: 10.5.4

Type: Bug Priority: Major
Reporter: Varun Gupta (Inactive) Assignee: Varun Gupta (Inactive)
Resolution: Fixed Votes: 0
Labels: None


 Description   

Monty mentioned

Find a solution for test_if_skip_sort_order() and key_reads. The problem is that we set key_read for indexes early and then test_if_skip_sort_order() have to delete old ones and in some cases add new ones. It would be better if the optimizer didn't enable key reads until after all indexes have been decided and can't be changed anymore.

So the idea is to let all the plan refinements happen and all then enable the keyread for indexes.



 Comments   
Comment by Varun Gupta (Inactive) [ 2020-04-28 ]

First attempt of the patch was

https://github.com/MariaDB/server/commit/744a4fce6a10bf6f1f06190941bbd10d4f9149bc

Comment by Varun Gupta (Inactive) [ 2020-06-08 ]

Patch after addressing review
https://github.com/mariadb/server/commit/cb1a2bb1281e7d469be0c7c4dea64078267b041a#diff-1

Comment by Michael Widenius [ 2020-06-08 ]

ok to push as long as all valgrind and MSAN builds are ok

Generated at Thu Feb 08 09:14:27 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.