From 56aeee44d39e10c7d86cdbc4eb7cd695a1292763 Mon Sep 17 00:00:00 2001 From: "sergefp@mysql.com" <> 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 | 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);