From d17093b2edfbd1422f224c553eb73c9263eeeb1a Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 18 Apr 2017 17:44:30 +0200 Subject: MDEV-12293 Assertion `table->no_keyread || !table->covering_keys.is_set(tab->index) || table->file->keyread == tab->index' failed sometimes the optimizer starts a keyread on some index and later (but before any actual index accesses) changes it to a keyread on a different index --- sql/handler.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'sql') diff --git a/sql/handler.h b/sql/handler.h index 830e45a139f..7750c8ad7fb 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -2858,10 +2858,9 @@ public: bool keyread_enabled() { return keyread < MAX_KEY; } int ha_start_keyread(uint idx) { - if (keyread_enabled()) - return 0; + int res= keyread_enabled() ? 0 : extra(HA_EXTRA_KEYREAD); keyread= idx; - return extra(HA_EXTRA_KEYREAD); + return res; } int ha_end_keyread() { -- cgit v1.2.1