--source include/have_udf.inc

--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
eval CREATE FUNCTION IF NOT EXISTS metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO";
SELECT ret FROM mysql.func WHERE name like 'metaphon';

--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
--error ER_UDF_EXISTS
CREATE FUNCTION metaphon RETURNS INT SONAME "$UDF_EXAMPLE_SO";
SELECT ret FROM mysql.func WHERE name like 'metaphon';

--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
eval CREATE FUNCTION IF NOT EXISTS metaphon RETURNS REAL SONAME "$UDF_EXAMPLE_SO";
SELECT ret FROM mysql.func WHERE name like 'metaphon';

DROP FUNCTION IF EXISTS metaphon;
--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
eval CREATE FUNCTION IF NOT EXISTS metaphon RETURNS REAL SONAME "$UDF_EXAMPLE_SO";
SELECT ret FROM mysql.func WHERE name like 'metaphon';

--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
--error ER_WRONG_USAGE
eval CREATE OR REPLACE FUNCTION IF NOT EXISTS metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO";
SELECT ret FROM mysql.func WHERE name like 'metaphon';

--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
eval CREATE OR REPLACE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO";
SELECT ret FROM mysql.func WHERE name like 'metaphon';

--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
--error ER_UDF_EXISTS
eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO";
SELECT metaphon('mariadb');

DROP FUNCTION metaphon;
DROP FUNCTION IF EXISTS metaphon;
