Bug #35676 @@optimizer_switch not present in mysqld options
Submitted: 29 Mar 2008 19:36 Modified: 29 Apr 2009 13:39
Reporter: Sergey Petrunya Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Optimizer Severity:S3 (Non-critical)
Version:6.0-bk OS:Any
Assigned to: Sergey Petrunya CPU Architecture:Any

[29 Mar 2008 19:36] Sergey Petrunya
Description:
MySQL 6.0 introduced local and global @@optimizer_switch variable. However, it is not possible to set it as a command-line option to mysqld:

mysqld --help --verbose doesn't list it

attempt to specify this option produces an error. 

How to repeat:
Run 

mysqld --help --verbose

and observe no mention of optimizer_switch, run

mysqld --optimizer_switch=no_semijoin

and get an error.

Suggested fix:
make optimizer_switch handled in the options
[29 Mar 2008 22:00] MySQL Verification Team
Thank you for the bug report.
[12 Jul 2008 16:38] Philip Stoev
SET GLOBAL optimizer_switch has no effect, SET optimizer_switch must be used instead.
[12 Jul 2008 17:13] Sergey Petrunya
Philip,

I stand that SET GLOBAL optimizer_switch works as as it does for any other system variable as documented here:

http://dev.mysql.com/doc/refman/5.0/en/set-option.html

"
 If you change a global system variable, the value is remembered and used for new connections until the server restarts ...  The global variable change does not affect the session variable for any client that is currently connected (not even that of the client that issues the SET GLOBAL statement).
"

If you have a case where the behavior is not like specified in documentation, please post a complete example how one could observe that.
[29 Apr 2009 13:39] Sergey Petrunya
Fixed by this (and subsequent) commits: http://lists.mysql.com/commits/69225