summaryrefslogtreecommitdiff
path: root/myisam/sort.c
diff options
context:
space:
mode:
authorsvoj@may.pils.ru <>2006-08-14 17:05:02 +0500
committersvoj@may.pils.ru <>2006-08-14 17:05:02 +0500
commitd4bdba176f0377c8bff29856e69e7847f0fd3074 (patch)
treebf03933cdadf7c01941372b18ee76844aa412cff /myisam/sort.c
parent81b70f979804cc91f2d11750a694ca414806b947 (diff)
downloadmariadb-git-d4bdba176f0377c8bff29856e69e7847f0fd3074.tar.gz
BUG#18874 - Setting myisam_repair_threads > 1, index cardinality always 1
Fixed by moving update_key_parts() down to be after write_index().
Diffstat (limited to 'myisam/sort.c')
-rw-r--r--myisam/sort.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/myisam/sort.c b/myisam/sort.c
index 96b55d599c8..1a3dc147cd9 100644
--- a/myisam/sort.c
+++ b/myisam/sort.c
@@ -480,13 +480,6 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
if (!got_error)
{
share->state.key_map|=(ulonglong) 1 << sinfo->key;
- if (param->testflag & T_STATISTICS)
- update_key_parts(sinfo->keyinfo, rec_per_key_part, sinfo->unique,
- param->stats_method == MI_STATS_METHOD_IGNORE_NULLS?
- sinfo->notnull: NULL,
- (ulonglong) info->state->records);
-
-
if (!sinfo->buffpek.elements)
{
if (param->testflag & T_VERBOSE)
@@ -498,6 +491,11 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
flush_ft_buf(sinfo) || flush_pending_blocks(sinfo))
got_error=1;
}
+ if (!got_error && param->testflag & T_STATISTICS)
+ update_key_parts(sinfo->keyinfo, rec_per_key_part, sinfo->unique,
+ param->stats_method == MI_STATS_METHOD_IGNORE_NULLS?
+ sinfo->notnull: NULL,
+ (ulonglong) info->state->records);
}
my_free((gptr) sinfo->sort_keys,MYF(0));
my_free(mi_get_rec_buff_ptr(info, sinfo->rec_buff),