diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-02-06 23:36:39 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-02-13 18:12:05 +0100 |
commit | 0e5230e12d1d06e734141bde24e1b928986a77ed (patch) | |
tree | 0135790265188fdef28cf36a496cf310bb550ef0 | |
parent | 1913daf42cfa9b93aceb82dd0f449ea3f3f7b119 (diff) | |
download | mariadb-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.cc | 12 |
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")); |