Merged recent changes from mysql-next-mr-bugfixing

into mysql-next-4284.
This commit is contained in:
Dmitry Lenev 2010-03-01 19:48:39 +03:00
commit 5e09c42f21
4 changed files with 24 additions and 7 deletions

View file

@ -115,6 +115,8 @@ select @@optimizer_prune_level;
@@optimizer_prune_level @@optimizer_prune_level
1 1
set optimizer_search_depth=63; set optimizer_search_depth=63;
Warnings:
Warning 1287 'optimizer-search-depth=63' is deprecated and will be removed in a future release. Please use a search depth less than 63 instead
select @@optimizer_search_depth; select @@optimizer_search_depth;
@@optimizer_search_depth @@optimizer_search_depth
63 63

View file

@ -396,8 +396,9 @@ The following options may be given as the first argument:
relation result in faster optimization, but may produce relation result in faster optimization, but may produce
very bad query plans. If set to 0, the system will very bad query plans. If set to 0, the system will
automatically pick a reasonable value; if set to 63, the automatically pick a reasonable value; if set to 63, the
optimizer will switch to the original find_best optimizer will switch to the original find_best search.
search(used for testing/comparison) NOTE: The value 63 and its associated behaviour is
deprecated
--optimizer-switch=name --optimizer-switch=name
optimizer_switch=option=val[,option=val...], where option optimizer_switch=option=val[,option=val...], where option
is one of {index_merge, index_merge_union, is one of {index_merge, index_merge_union,

View file

@ -396,8 +396,9 @@ The following options may be given as the first argument:
relation result in faster optimization, but may produce relation result in faster optimization, but may produce
very bad query plans. If set to 0, the system will very bad query plans. If set to 0, the system will
automatically pick a reasonable value; if set to 63, the automatically pick a reasonable value; if set to 63, the
optimizer will switch to the original find_best optimizer will switch to the original find_best search.
search(used for testing/comparison) NOTE: The value 63 and its associated behaviour is
deprecated
--optimizer-switch=name --optimizer-switch=name
optimizer_switch=option=val[,option=val...], where option optimizer_switch=option=val[,option=val...], where option
is one of {index_merge, index_merge_union, is one of {index_merge, index_merge_union,

View file

@ -1305,6 +1305,17 @@ static Sys_var_ulong Sys_optimizer_prune_level(
SESSION_VAR(optimizer_prune_level), CMD_LINE(REQUIRED_ARG), SESSION_VAR(optimizer_prune_level), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, 1), DEFAULT(1), BLOCK_SIZE(1)); VALID_RANGE(0, 1), DEFAULT(1), BLOCK_SIZE(1));
/** Warns about deprecated value 63 */
static bool fix_optimizer_search_depth(sys_var *self, THD *thd,
enum_var_type type)
{
SV *sv= type == OPT_GLOBAL ? &global_system_variables : &thd->variables;
if (sv->optimizer_search_depth == MAX_TABLES+2)
WARN_DEPRECATED(thd, 6, 0, "optimizer-search-depth=63",
"a search depth less than 63");
return false;
}
static Sys_var_ulong Sys_optimizer_search_depth( static Sys_var_ulong Sys_optimizer_search_depth(
"optimizer_search_depth", "optimizer_search_depth",
"Maximum depth of search performed by the query optimizer. Values " "Maximum depth of search performed by the query optimizer. Values "
@ -1313,10 +1324,12 @@ static Sys_var_ulong Sys_optimizer_search_depth(
"than the number of tables in a relation result in faster " "than the number of tables in a relation result in faster "
"optimization, but may produce very bad query plans. If set to 0, " "optimization, but may produce very bad query plans. If set to 0, "
"the system will automatically pick a reasonable value; if set to " "the system will automatically pick a reasonable value; if set to "
"63, the optimizer will switch to the original find_best search" "63, the optimizer will switch to the original find_best search. "
"(used for testing/comparison)", "NOTE: The value 63 and its associated behaviour is deprecated",
SESSION_VAR(optimizer_search_depth), CMD_LINE(REQUIRED_ARG), SESSION_VAR(optimizer_search_depth), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, MAX_TABLES+2), DEFAULT(MAX_TABLES+1), BLOCK_SIZE(1)); VALID_RANGE(0, MAX_TABLES+2), DEFAULT(MAX_TABLES+1), BLOCK_SIZE(1),
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
ON_UPDATE(fix_optimizer_search_depth));
static const char *optimizer_switch_names[]= static const char *optimizer_switch_names[]=
{ {