Commit c7d335a7 authored by unknown's avatar unknown

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.
parent 0bc00975
...@@ -1951,9 +1951,12 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use, ...@@ -1951,9 +1951,12 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
read_time= (double) HA_POS_ERROR; read_time= (double) HA_POS_ERROR;
goto free_mem; goto free_mem;
} }
if (tree->type != SEL_TREE::KEY && /*
tree->type != SEL_TREE::KEY_SMALLER) If the tree can't be used for range scans, proceed anyway, as we
goto free_mem; can construct a group-min-max quick select
*/
if (tree->type != SEL_TREE::KEY && tree->type != SEL_TREE::KEY_SMALLER)
tree= NULL;
} }
} }
......
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