mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
BUG#15448 (group_min_max test failure): Don't bypass group-min-max optimizer entry point
if we've got a tree of type ALWAYS or MAYBE. sql/opt_range.cc: BUG#15448 (group_min_max test failure): Don't buypass group-min-max optimizer entry point if we've got a tree of type ALWAYS or MAYBE. The effect observed by this bug has been introduced by this cset: ChangeSet 1.1967.5.2 2005/12/26 08:40:09 sergefp@mysql.com. The cset introduced PARAM::remove_jump_scans which purpose was to avoid making [always unsuccessful] attempts to construct index_merge for construct index_merge for conditions like "t.key1partX=c1 OR t.key1partY=c2". The effect of this change was that some queries that previously had produced a SEL_TREE representing candidate for index_merge(X,Y) now started to produce SEL_TREE with type=ALWAYS, and group-min-max analysis for these trees has been bypassed. In this fix we make SEL_TREE with type=ALWAYS to be processed in the same way as (SEL_TREE*)NULL, its equivalent.
This commit is contained in:
@ -1951,9 +1951,12 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
|
||||
read_time= (double) HA_POS_ERROR;
|
||||
goto free_mem;
|
||||
}
|
||||
if (tree->type != SEL_TREE::KEY &&
|
||||
tree->type != SEL_TREE::KEY_SMALLER)
|
||||
goto free_mem;
|
||||
/*
|
||||
If the tree can't be used for range scans, proceed anyway, as we
|
||||
can construct a group-min-max quick select
|
||||
*/
|
||||
if (tree->type != SEL_TREE::KEY && tree->type != SEL_TREE::KEY_SMALLER)
|
||||
tree= NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user