From 562bfb2d57ab6f7a8d8c79b692ac1496372bcf7d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 25 Oct 2005 16:34:03 +0400 Subject: [PATCH] Fix for BUG#14272: Don't run index scan when we should use quick select. This could cause failures because there are table handlers (like federated) that support quick select scanning but do not support index scanning. mysql-test/t/disabled.def: Enabled federated testcase. --- mysql-test/t/disabled.def | 1 - sql/sql_update.cc | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index bc81f716ec7..fe95a543fb5 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -15,4 +15,3 @@ rpl_relayrotate : Unstable test case, bug#12429 rpl_until : Unstable test case, bug#12429 rpl_deadlock : Unstable test case, bug#12429 kill : Unstable test case, bug#9712 -federated : Broken test case, bug#14272 diff --git a/sql/sql_update.cc b/sql/sql_update.cc index a8e21177338..f0682c1c9cd 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -286,7 +286,7 @@ int mysql_update(THD *thd, if (used_index < MAX_KEY && old_used_keys.is_set(used_index)) { table->key_read=1; - table->file->extra(HA_EXTRA_KEYREAD); //todo: psergey: check + table->file->extra(HA_EXTRA_KEYREAD); } /* note: can actually avoid sorting below.. */ @@ -334,7 +334,7 @@ int mysql_update(THD *thd, /* If quick select is used, initialize it before retrieving rows. */ if (select && select->quick && select->quick->reset()) goto err; - if (used_index == MAX_KEY) + if (used_index == MAX_KEY || (select && select->quick)) init_read_record(&info,thd,table,select,0,1); else init_read_record_idx(&info, thd, table, 1, used_index);