Implementing code review comments
mysql-test/r/sp.result: Added tests for coverage mysql-test/t/sp.test: Added tests for coverage sql/sql_udf.cc: Code cleanup
This commit is contained in:
parent
f1d7a96b0a
commit
28ef3b2a7f
@ -6563,6 +6563,21 @@ f1()
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP FUNCTION f1;
|
DROP FUNCTION f1;
|
||||||
|
|
||||||
|
DROP PROCEDURE IF EXISTS db28318_a.t1;
|
||||||
|
DROP PROCEDURE IF EXISTS db28318_b.t2;
|
||||||
|
DROP DATABASE IF EXISTS db28318_a;
|
||||||
|
DROP DATABASE IF EXISTS db28318_b;
|
||||||
|
CREATE DATABASE db28318_a;
|
||||||
|
CREATE DATABASE db28318_b;
|
||||||
|
CREATE PROCEDURE db28318_a.t1() SELECT "db28318_a.t1";
|
||||||
|
CREATE PROCEDURE db28318_b.t2() CALL t1();
|
||||||
|
use db28318_a;
|
||||||
|
CALL db28318_b.t2();
|
||||||
|
ERROR 42000: PROCEDURE db28318_b.t1 does not exist
|
||||||
|
DROP PROCEDURE db28318_a.t1;
|
||||||
|
DROP PROCEDURE db28318_b.t2;
|
||||||
|
DROP DATABASE db28318_a;
|
||||||
|
DROP DATABASE db28318_b;
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# -- End of 5.0 tests
|
# -- End of 5.0 tests
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
@ -7671,6 +7671,35 @@ DROP FUNCTION f1;
|
|||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#28318 (CREATE FUNCTION (UDF) requires a schema)
|
||||||
|
#
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP PROCEDURE IF EXISTS db28318_a.t1;
|
||||||
|
DROP PROCEDURE IF EXISTS db28318_b.t2;
|
||||||
|
DROP DATABASE IF EXISTS db28318_a;
|
||||||
|
DROP DATABASE IF EXISTS db28318_b;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
CREATE DATABASE db28318_a;
|
||||||
|
CREATE DATABASE db28318_b;
|
||||||
|
|
||||||
|
CREATE PROCEDURE db28318_a.t1() SELECT "db28318_a.t1";
|
||||||
|
CREATE PROCEDURE db28318_b.t2() CALL t1();
|
||||||
|
|
||||||
|
use db28318_a;
|
||||||
|
|
||||||
|
# In db28318_b.t2, t1 refers to db28318_b.t1
|
||||||
|
--error ER_SP_DOES_NOT_EXIST
|
||||||
|
CALL db28318_b.t2();
|
||||||
|
|
||||||
|
DROP PROCEDURE db28318_a.t1;
|
||||||
|
DROP PROCEDURE db28318_b.t2;
|
||||||
|
DROP DATABASE db28318_a;
|
||||||
|
DROP DATABASE db28318_b;
|
||||||
|
|
||||||
|
|
||||||
--echo # ------------------------------------------------------------------
|
--echo # ------------------------------------------------------------------
|
||||||
--echo # -- End of 5.0 tests
|
--echo # -- End of 5.0 tests
|
||||||
--echo # ------------------------------------------------------------------
|
--echo # ------------------------------------------------------------------
|
||||||
|
@ -426,14 +426,14 @@ int mysql_create_function(THD *thd,udf_func *udf)
|
|||||||
}
|
}
|
||||||
if (udf->name.length > NAME_LEN)
|
if (udf->name.length > NAME_LEN)
|
||||||
{
|
{
|
||||||
my_error(ER_TOO_LONG_IDENT, MYF(0), udf->name);
|
my_error(ER_TOO_LONG_IDENT, MYF(0), udf->name.str);
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
rw_wrlock(&THR_LOCK_udf);
|
rw_wrlock(&THR_LOCK_udf);
|
||||||
if ((hash_search(&udf_hash,(byte*) udf->name.str, udf->name.length)))
|
if ((hash_search(&udf_hash,(byte*) udf->name.str, udf->name.length)))
|
||||||
{
|
{
|
||||||
my_error(ER_UDF_EXISTS, MYF(0), udf->name);
|
my_error(ER_UDF_EXISTS, MYF(0), udf->name.str);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
if (!(dl = find_udf_dl(udf->dl)))
|
if (!(dl = find_udf_dl(udf->dl)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user