summaryrefslogtreecommitdiff
path: root/sql/records.cc
diff options
context:
space:
mode:
authorunknown <ingo@mysql.com>2004-12-23 21:45:10 +0100
committerunknown <ingo@mysql.com>2004-12-23 21:45:10 +0100
commitece4106a2c46729a213143eff8ed398c5b17f9b7 (patch)
tree2278239c23c9cfa8abc2cfb833b598df01227ee8 /sql/records.cc
parentee666660bab621f44e1e8882c97a825bd1cee0a6 (diff)
downloadmariadb-git-ece4106a2c46729a213143eff8ed398c5b17f9b7.tar.gz
WL#2126 - Multi_read_range.
Added the required structures and functions for handing over multiple key ranges to the table handler. include/my_base.h: WL#2126 - Multi_read_range. Moved key range flags from sql/opt_range.h to here. Added the multi-range structure. sql/handler.cc: WL#2126 - Multi_read_range. Added the new table handler methods. sql/handler.h: WL#2126 - Multi_read_range. Added a new table flag. Added a declaration for the handler buffer. Added new elements to class handler. Added new function declarations. sql/mysqld.cc: WL#2126 - Multi_read_range. Added an option to set new system variable 'multi_range_count'. sql/opt_range.cc: WL#2126 - Multi_read_range. Added initialization for the new class members. Added initialization for the extended get_next(). Added de-initialization for the allocated buffers. Added a buffer allocation method. Added an inner loop to collect multiple ranges. Adapted range collection loops to the new initialization. sql/opt_range.h: WL#2126 - Multi_read_range. Moved key range flags from here to include/my_base.h. Added new elements to class QUICK_RANGE_SELECT. Added a copy constructor. sql/records.cc: WL#2126 - Multi_read_range. Added a call of the allocation method. sql/set_var.cc: WL#2126 - Multi_read_range. Added the new system variable 'multi_range_count'. sql/sql_class.h: WL#2126 - Multi_read_range. Added the new system variable 'multi_range_count'.
Diffstat (limited to 'sql/records.cc')
-rw-r--r--sql/records.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/records.cc b/sql/records.cc
index 5963c36afd9..3c0143d2307 100644
--- a/sql/records.cc
+++ b/sql/records.cc
@@ -100,11 +100,19 @@ void init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
}
else if (select && select->quick)
{
+ int error;
DBUG_PRINT("info",("using rr_quick"));
if (!table->file->inited)
table->file->ha_index_init(select->quick->index);
info->read_record=rr_quick;
+
+ if ((error= select->quick->get_next_init()))
+ {
+ /* Cannot return error code here. Instead print to error log. */
+ table->file->print_error(error,MYF(ME_NOREFRESH));
+ thd->fatal_error();
+ }
}
else if (table->sort.record_pointers)
{