diff options
author | Alexey Kopytov <Alexey.Kopytov@sun.com> | 2010-07-15 10:10:16 +0400 |
---|---|---|
committer | Alexey Kopytov <Alexey.Kopytov@sun.com> | 2010-07-15 10:10:16 +0400 |
commit | a42108c291da5c4928fe831206d767df61490f62 (patch) | |
tree | 4dca1ff60260ed2418dfdb9c899881ea6c65a0d3 /sql/opt_range.cc | |
parent | 7c6ba7b4dedcfc21a15075d6445bd2f376f1492b (diff) | |
download | mariadb-git-a42108c291da5c4928fe831206d767df61490f62.tar.gz |
Backport of the fix for bug#25421 to 5.0.
Calculating the estimated number of records for a range scan
may take a significant time, and it was impossible for a user
to interrupt that process by killing the connection or the
query.
Fixed by checking the thread's 'killed' status in
check_quick_keys() and interrupting the calculation process if
it is set to a non-zero value.
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r-- | sql/opt_range.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 84519c091b9..35d1216387c 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -6066,6 +6066,9 @@ check_quick_keys(PARAM *param,uint idx,SEL_ARG *key_tree, tmp_max_flag=max_key_flag | key_tree->max_flag; } + if (unlikely(param->thd->killed != 0)) + return HA_POS_ERROR; + keynr=param->real_keynr[idx]; param->range_count++; if (!tmp_min_flag && ! tmp_max_flag && |