mirror of
https://github.com/MariaDB/server.git
synced 2025-08-05 13:16:09 +03:00
Ensure that test_quick_select doesn't return more rows than in the table
Other changes: - In test_quick_select(), assume that if table->used_stats_records is 0 then the table has 0 rows. - Fixed prepare_simple_select() to populate table->used_stat_records - Enusre that set_statistics_for_tables() doesn't cause used_stats_records to be 0 when using stat_tables. - To get blackhole to work with replication, set stats.records to 2 so that test_quick_select() doesn't assume the table is empty.
This commit is contained in:
@@ -3741,10 +3741,15 @@ void set_statistics_for_table(THD *thd, TABLE *table)
|
||||
{
|
||||
TABLE_STATISTICS_CB *stats_cb= &table->s->stats_cb;
|
||||
Table_statistics *read_stats= stats_cb->table_stats;
|
||||
table->used_stat_records=
|
||||
|
||||
/*
|
||||
The MAX below is to ensure that we don't return 0 rows for a table if it
|
||||
not guaranteed to be empty.
|
||||
*/
|
||||
table->used_stat_records=
|
||||
(!check_eits_preferred(thd) ||
|
||||
!table->stats_is_read || read_stats->cardinality_is_null) ?
|
||||
table->file->stats.records : read_stats->cardinality;
|
||||
table->file->stats.records : MY_MAX(read_stats->cardinality, 1);
|
||||
|
||||
/*
|
||||
For partitioned table, EITS statistics is based on data from all partitions.
|
||||
|
Reference in New Issue
Block a user