diff options
author | unknown <timour@askmonty.org> | 2011-02-10 16:23:59 +0200 |
---|---|---|
committer | unknown <timour@askmonty.org> | 2011-02-10 16:23:59 +0200 |
commit | 6a66bf318207d71502abad7521abe5f34302bbe4 (patch) | |
tree | f43551894e03864da27828e63a1d7cd8c0fc5408 /mysql-test/r/func_group_innodb.result | |
parent | ca37339585cd73363cb0d11cea73561cf78ee79f (diff) | |
download | mariadb-git-6a66bf318207d71502abad7521abe5f34302bbe4.tar.gz |
MWL#89
Fixed LP BUG#714808 Assertion `outer_lookup_keys <= outer_record_count'
Analysis:
The function best_access_path() computes the number or records as
follows:
...
if (rec < MATCHING_ROWS_IN_OTHER_TABLE)
rec= MATCHING_ROWS_IN_OTHER_TABLE; // Fix for small tables
...
if (table->quick_keys.is_set(key))
records= (double) table->quick_rows[key];
else
{
/* quick_range couldn't use key! */
records= (double) s->records/rec;
}
Above MATCHING_ROWS_IN_OTHER_TABLE == 10, and s->records == 1,
thus we get an estimated 0.1 records. As a result JOIN::get_partial_join_cost()
for the outer query computes outer_record_count == 0.1 records, which is
meaningless in this context.
Solution:
Round row count estimates that are < 1 to 1.
Diffstat (limited to 'mysql-test/r/func_group_innodb.result')
0 files changed, 0 insertions, 0 deletions