From: Dmitry Shulga Date: May 27 2011 3:37am Subject: bzr commit into mysql-5.1 branch (Dmitry.Shulga:3625) Bug#60347 Bug#11840395 List-Archive: http://lists.mysql.com/commits/138269 X-Bug: 60347,11840395 Message-Id: <201105270337.p4R3bZYd025273@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4417948048799532401==" --===============4417948048799532401== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/shulga/projects/mysql/mysql-5.1-bug11840395/ based on revid:vasil.dimov@stripped 3625 Dmitry Shulga 2011-05-27 Fixed bug#11840395 (formerly known as bug#60347): THE STRING "VERSIONDATA" SEEMS TO BE 'LEAKING' INTO THE SCHEMA NAME SPACE. The problem was that if you create a stored function at a schema that have uppercase letters in its name AND --lower_case_table_names is equal to either 1 or 2, then when you try to call this stored function like such a way select someMixedCaseDb.my_function_name(); you will got error like this ERROR 1305 (42000): FUNCTION someMixedCaseDb.my_function_name does not exist The reason for this bug is that when a stored function is being created its name schema name is converted to lowercase if the value of option --lower_case_table_names is not equal to 0. However, this conversion isn't done when this stored function called by fully qualified name (i.e. in manner as schema_name.function_name). For stored procedures all is ok since during parsing clause 'call schemaName.sp_name()' schema name converted to lowercase. The solution is to convert stored function name to lowercase when it called and the value of option lower_case_table_names is not equal to 0. @ sql/sql_yacc.yy Processing for rule for 'function_call_generic:' was modified: add call to check_db_name() when handling token ident '.' ident. Function implementation for check_db_name() makes convertion of schema name to lowercase as its side effect. modified: sql/sql_yacc.yy === modified file 'sql/sql_yacc.yy' --- a/sql/sql_yacc.yy 2010-10-13 05:28:58 +0000 +++ b/sql/sql_yacc.yy 2011-05-27 03:37:08 +0000 @@ -8083,6 +8083,11 @@ function_call_generic: version() (a vendor can specify any schema). */ + if (!$1.str || check_db_name(&$1)) + { + my_error(ER_WRONG_DB_NAME, MYF(0), $1.str); + MYSQL_YYABORT; + } builder= find_qualified_function_builder(thd); DBUG_ASSERT(builder); item= builder->create(thd, $1, $3, true, $5); --===============4417948048799532401== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/dmitry.shulga@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: dmitry.shulga@stripped\ # tokk4jjs6ymeb3td # target_branch: file:///Users/shulga/projects/mysql/mysql-5.1-\ # bug11840395/ # testament_sha1: 4545f66e9c3f8fafd0ba80346fbce102d9532672 # timestamp: 2011-05-27 10:37:29 +0700 # base_revision_id: vasil.dimov@stripped\ # d5bemprd5a5ruziu # # Begin bundle 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 --===============4417948048799532401==--