summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-04-18 17:44:30 +0200
committerSergei Golubchik <serg@mariadb.org>2017-04-30 14:58:11 +0200
commitd17093b2edfbd1422f224c553eb73c9263eeeb1a (patch)
tree8ee98abc364e490152f01d0185cf4eb3e1047a34 /sql
parent54e24fcbd537827e32ec029ab6b8af640fd08819 (diff)
downloadmariadb-git-d17093b2edfbd1422f224c553eb73c9263eeeb1a.tar.gz
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
Diffstat (limited to 'sql')
-rw-r--r--sql/handler.h5
1 files changed, 2 insertions, 3 deletions
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()
{