summaryrefslogtreecommitdiff
path: root/sql/opt_range.cc
diff options
context:
space:
mode:
authorunknown <acurtis/antony@ltamd64.xiphis.org>2006-12-26 12:33:21 -0800
committerunknown <acurtis/antony@ltamd64.xiphis.org>2006-12-26 12:33:21 -0800
commitfcbfb41f30d794a14241070a44bba841ea0417d7 (patch)
treec404e0b5b76f15a67987df869260f7a0aba1dcaf /sql/opt_range.cc
parent4dabfa5de70c59c4f7ea1e4a33224c5a3f798d66 (diff)
parent901cbf0326caa9fd144d4fb872a542d0fa44b8f6 (diff)
downloadmariadb-git-fcbfb41f30d794a14241070a44bba841ea0417d7.tar.gz
Merge xiphis.org:/home/antony/work2/mysql-5.1-engines
into xiphis.org:/home/antony/work2/mysql-5.1-engines-merge include/mysql.h: Auto merged mysql-test/Makefile.am: Auto merged sql/opt_range.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged storage/federated/ha_federated.cc: Auto merged storage/myisam/mi_check.c: Auto merged storage/myisam/mi_dynrec.c: Auto merged storage/myisam/mi_packrec.c: Auto merged storage/myisam/mi_range.c: Auto merged storage/myisam/mi_test1.c: Auto merged storage/myisam/mi_write.c: Auto merged storage/myisam/rt_split.c: Auto merged configure.in: fix merge conflict
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r--sql/opt_range.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index bd930ba91f4..929133841bc 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -1001,6 +1001,11 @@ QUICK_RANGE_SELECT::~QUICK_RANGE_SELECT()
if (file)
{
range_end();
+ if (head->key_read)
+ {
+ head->key_read= 0;
+ file->extra(HA_EXTRA_NO_KEYREAD);
+ }
if (free_file)
{
DBUG_PRINT("info", ("Freeing separate handler 0x%lx (free: %d)", (long) file,
@@ -1009,10 +1014,6 @@ QUICK_RANGE_SELECT::~QUICK_RANGE_SELECT()
file->close();
delete file;
}
- else
- {
- file->extra(HA_EXTRA_NO_KEYREAD);
- }
}
delete_dynamic(&ranges); /* ranges are allocated in alloc */
free_root(&alloc,MYF(0));
@@ -1194,7 +1195,11 @@ end:
org_file= head->file;
head->file= file;
/* We don't have to set 'head->keyread' here as the 'file' is unique */
- head->mark_columns_used_by_index(index);
+ if (!head->no_keyread)
+ {
+ head->key_read= 1;
+ head->mark_columns_used_by_index(index);
+ }
head->prepare_for_position();
head->file= org_file;
bitmap_copy(&column_bitmap, head->read_set);