Bug #55893 optimizer_switch should report which variable it can not process
Submitted: 10 Aug 2010 20:08 Modified: 10 Aug 2010 20:34
Reporter: Jonathan Miller Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Options Severity:S3 (Non-critical)
Version:mysql-next-mr-opt-backporting OS:Any
Assigned to: CPU Architecture:Any
Tags: optimizer_switch, semijoin

[10 Aug 2010 20:08] Jonathan Miller
Description:
optimizer_switch='loosescan=off,semijoin=off,fistmatch=off,materialization=off,mrr=on,index_condition_pushdown=on,mrr_cost_based=off'
optimizer-join-cache-level=1

When automation tries to start MySQLD, the demon returns:

Error while setting value 'loosescan=off,semijoin=off,fistmatch=off,materialization=off,mrr=on,index_condition_pushdown=on,mrr_cost_based=off' to 'optimizer_switch'

In the above "fistmatch" is misspelled and sure have been "firstmatch"

Yet, instead of complaining about "fistmatch" the whole string is returned in the error:

i.e. 'loosescan=off,semijoin=off,fistmatch=off,materialization=off,mrr=on,index_condition_pushdown=on,mrr_cost_based=off'

 

How to repeat:
Add the following to the mysqld config file and try to start

optimizer_switch='loosescan=off,semijoin=off,fistmatch=off,materialization=off,mrr=on,index_condition_pushdown=on,mrr_cost_based=off'
optimizer-join-cache-level=1

Suggested fix:
Report the variable that can not be processed rather then the whole string.
[10 Aug 2010 20:34] Sveta Smirnova
Thank you for the report.

Verified as described, although strictly say this is feature request.