diff options
-rw-r--r-- | sql/sql_select.cc | 1 | ||||
-rw-r--r-- | sql/sql_statistics.cc | 3 | ||||
-rw-r--r-- | sql/table.cc | 1 |
3 files changed, 4 insertions, 1 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 5279db17029..e482b6a8c96 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -14657,6 +14657,7 @@ create_tmp_table(THD *thd, TMP_TABLE_PARAM *param, List<Item> &fields, keyinfo->algorithm= HA_KEY_ALG_UNDEF; keyinfo->is_statistics_from_stat_tables= FALSE; keyinfo->rec_per_key=0; + keyinfo->read_stat.avg_frequency= NULL; /* Create an extra field to hold NULL bits so that unique indexes on diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc index 27aa77ae1a3..3c6f5829e6b 100644 --- a/sql/sql_statistics.cc +++ b/sql/sql_statistics.cc @@ -1636,6 +1636,7 @@ void set_statistics_for_table(THD *thd, TABLE *table) key_info < key_info_end; key_info++) { key_info->is_statistics_from_stat_tables= - (use_stat_table_mode > 1 && key_info->read_stat.avg_frequency[0] > 0.5); + (use_stat_table_mode > 1 && key_info->read_stat.avg_frequency && + key_info->read_stat.avg_frequency[0] > 0.5); } } diff --git a/sql/table.cc b/sql/table.cc index 78449d0498d..bbccd38d83c 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -5957,6 +5957,7 @@ bool TABLE::add_tmp_key(uint key, uint key_parts, if (!keyinfo->rec_per_key) return TRUE; bzero(keyinfo->rec_per_key, sizeof(ulong)*key_parts); + keyinfo->read_stat.avg_frequency= NULL; for (i= 0; i < key_parts; i++) { |