Commit f7f48719 authored by serg@serg.mylan's avatar serg@serg.mylan

fix ANALYZE TBALE to never generate rec_per_key_part < 1, as it prevent the...

fix ANALYZE TBALE to never generate rec_per_key_part < 1, as it prevent the table from being marked as analyzed (and the value is meaningless anyway)
parent e3a3d00c
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
/* Functions defined in this file */ /* Functions defined in this file */
static int check_k_link(MI_CHECK *param, MI_INFO *info,uint nr); static int check_k_link(MI_CHECK *param, MI_INFO *info,uint nr);
static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo, static int chk_index(MI_CHECK *param, MI_INFO *info,MI_KEYDEF *keyinfo,
my_off_t page, uchar *buff, ha_rows *keys, my_off_t page, uchar *buff, ha_rows *keys,
ha_checksum *key_checksum, uint level); ha_checksum *key_checksum, uint level);
static uint isam_key_length(MI_INFO *info,MI_KEYDEF *keyinfo); static uint isam_key_length(MI_INFO *info,MI_KEYDEF *keyinfo);
...@@ -3681,6 +3681,9 @@ void update_key_parts(MI_KEYDEF *keyinfo, ulong *rec_per_key_part, ...@@ -3681,6 +3681,9 @@ void update_key_parts(MI_KEYDEF *keyinfo, ulong *rec_per_key_part,
tmp=records; tmp=records;
else else
tmp= (records + (count+1)/2) / (count+1); tmp= (records + (count+1)/2) / (count+1);
/* for some weird keys (e.g. FULLTEXT) tmp can be <1 here.
let's ensure it is not */
set_if_bigger(tmp,1);
if (tmp >= (ulonglong) ~(ulong) 0) if (tmp >= (ulonglong) ~(ulong) 0)
tmp=(ulonglong) ~(ulong) 0; tmp=(ulonglong) ~(ulong) 0;
*rec_per_key_part=(ulong) tmp; *rec_per_key_part=(ulong) tmp;
......
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