Commit 22b43351 authored by SergeyV@selena's avatar SergeyV@selena

Merge svlasenko@bk-internal.mysql.com:/home/bk/mysql-5.0

into  selena.:H:/MYSQL/src/#14902-mysql-5.0
parents ab04ceaf e4cfca07
...@@ -402,7 +402,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) ...@@ -402,7 +402,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info)
full_text_keys++; full_text_keys++;
if (share->state.key_root[key] == HA_OFFSET_ERROR && if (share->state.key_root[key] == HA_OFFSET_ERROR &&
(info->state->records == 0 || keyinfo->flag & HA_FULLTEXT)) (info->state->records == 0 || keyinfo->flag & HA_FULLTEXT))
continue; goto do_stat;
if (!_mi_fetch_keypage(info,keyinfo,share->state.key_root[key], if (!_mi_fetch_keypage(info,keyinfo,share->state.key_root[key],
DFLT_INIT_HITS,info->buff,0)) DFLT_INIT_HITS,info->buff,0))
{ {
...@@ -498,6 +498,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) ...@@ -498,6 +498,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info)
param->max_level); param->max_level);
all_keydata+=param->keydata; all_totaldata+=param->totaldata; key_totlength+=length; all_keydata+=param->keydata; all_totaldata+=param->totaldata; key_totlength+=length;
do_stat:
if (param->testflag & T_STATISTICS) if (param->testflag & T_STATISTICS)
update_key_parts(keyinfo, rec_per_key_part, param->unique_count, update_key_parts(keyinfo, rec_per_key_part, param->unique_count,
param->stats_method == MI_STATS_METHOD_IGNORE_NULLS? param->stats_method == MI_STATS_METHOD_IGNORE_NULLS?
......
...@@ -30,6 +30,15 @@ check table t1; ...@@ -30,6 +30,15 @@ check table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
drop table t1; drop table t1;
create table t1 (a mediumtext, fulltext key key1(a)) charset utf8 collate utf8_general_ci engine myisam;
insert into t1 values ('hello');
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Table is already up to date
drop table t1;
CREATE TABLE t1 (a int); CREATE TABLE t1 (a int);
prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()"; prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()";
execute stmt1; execute stmt1;
......
...@@ -39,6 +39,20 @@ check table t1; ...@@ -39,6 +39,20 @@ check table t1;
drop table t1; drop table t1;
# Bug #14902 ANALYZE TABLE fails to recognize up-to-date tables
# minimal test case to get an error.
# The problem is happening when analysing table with FT index that
# contains stopwords only. The first execution of analyze table should
# mark index statistics as up to date so that next execution of this
# statement will end up with Table is up to date status.
create table t1 (a mediumtext, fulltext key key1(a)) charset utf8 collate utf8_general_ci engine myisam;
insert into t1 values ('hello');
analyze table t1;
analyze table t1;
drop table t1;
# #
# procedure in PS BUG#13673 # procedure in PS BUG#13673
# #
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment