summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-02-06 23:36:39 +0100
committerSergei Golubchik <serg@mariadb.org>2017-02-13 18:12:05 +0100
commit0e5230e12d1d06e734141bde24e1b928986a77ed (patch)
tree0135790265188fdef28cf36a496cf310bb550ef0
parent1913daf42cfa9b93aceb82dd0f449ea3f3f7b119 (diff)
downloadmariadb-git-0e5230e12d1d06e734141bde24e1b928986a77ed.tar.gz
support keyread in READ_RECORD
make init_read_record() to detect enabled keyread and use index_* access methods, not rnd_* this makes MariaDB to use keyread a lot more often than before
-rw-r--r--sql/records.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/records.cc b/sql/records.cc
index fccfa751c7e..50ef18063cc 100644
--- a/sql/records.cc
+++ b/sql/records.cc
@@ -279,6 +279,18 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
info->read_record= (addon_field ?
rr_unpack_from_buffer : rr_from_pointers);
}
+ else if (table->file->keyread_enabled())
+ {
+ int error;
+ info->read_record= rr_index_first;
+ if (!table->file->inited &&
+ (error= table->file->ha_index_init(table->file->keyread, 1)))
+ {
+ if (print_error)
+ table->file->print_error(error, MYF(0));
+ DBUG_RETURN(1);
+ }
+ }
else
{
DBUG_PRINT("info",("using rr_sequential"));