1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
# Register the UDS. The component is only registering UDFs.
# To unregister call another component.
INSTALL COMPONENT "file://component_udf_reg_only_3_func";
# Usage of registered UDFs.
--error ER_CANT_INITIALIZE_UDF
select myfunc_double();
select myfunc_double(1);
select myfunc_double(78654);
# Registered UDFs must not be touched by old UDF statements.
--error ER_UDF_DROP_DYNAMICALLY_REGISTERED
DROP FUNCTION myfunc_double;
# A registered UDF cannot be created by old SQL statement.
--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
--error ER_UDF_EXISTS
eval CREATE FUNCTION myfunc_double RETURNS REAL SONAME "$UDF_EXAMPLE_LIB";
select myfunc_int();
select myfunc_int(5);
select myfunc_int('MySQL V8.0');
# Registered UDFs must not be touched by old UDF statements.
--error ER_UDF_DROP_DYNAMICALLY_REGISTERED
DROP FUNCTION myfunc_int;
# A registered UDF cannot be created by old SQL statement.
--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
--error ER_UDF_EXISTS
eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_LIB";
CREATE TABLE t1(a INT, b INT);
INSERT INTO t1 values (1,1),(2,2);
SELECT myfunc_int(a AS attr_name) FROM t1;
drop table t1;
create table t1(sum int, price float(24));
insert into t1 values(100, 50.00), (100, 100.00);
select avgcost(sum, price) from t1;
delete from t1;
insert into t1 values(100, 54.33), (200, 199.99);
select avgcost(sum, price) from t1;
drop table t1;
# Registered UDFs must not be touched by old UDF statements.
--error ER_UDF_DROP_DYNAMICALLY_REGISTERED
DROP FUNCTION avgcost;
# Unregister UDFs and unload component.
--echo # remove the plugin
INSTALL COMPONENT "file://component_udf_unreg_3_func";
--error ER_SP_DOES_NOT_EXIST
select myfunc_double(1);
--error ER_SP_DOES_NOT_EXIST
select myfunc_int(5);
# A old style UDF can be uses in parallel to register/unregister.
--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
eval CREATE FUNCTION myfunc_double RETURNS REAL SONAME "$UDF_EXAMPLE_LIB";
select myfunc_double(1);
DROP FUNCTION myfunc_double;
# Register UDFs again.
UNINSTALL COMPONENT "file://component_udf_reg_only_3_func";
# Unregister UDFs.
UNINSTALL COMPONENT "file://component_udf_unreg_3_func";
|