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
|
drop table if exists t1;
CREATE FUNCTION myfunc_double RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
CREATE AGGREGATE FUNCTION avgcost RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
SELECT myfunc_double();
ERROR HY000: Can't initialize function 'myfunc_double'; myfunc_double must have at least one argument
SELECT myfunc_double(1);
myfunc_double(1)
49.00
SELECT myfunc_double(78654);
myfunc_double(78654)
54.00
SELECT myfunc_int();
myfunc_int()
0
SELECT myfunc_int(5);
myfunc_int(5)
5
SELECT myfunc_int('MySQL V8.0');
myfunc_int('MySQL V8.0')
10
CREATE TABLE t1(a INT, b INT);
INSERT INTO t1 values (1,1),(2,2);
SELECT myfunc_int(a AS attr_name) FROM t1;
myfunc_int(a AS attr_name)
1
2
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;
avgcost(sum, price)
75.0000
DELETE from t1;
INSERT INTO t1 VALUES(100, 54.33), (200, 199.99);
SELECT avgcost(sum, price) from t1;
avgcost(sum, price)
151.4367
DROP TABLE t1;
DROP FUNCTION myfunc_double;
DROP FUNCTION myfunc_int;
DROP FUNCTION avgcost;
SELECT myfunc_double(1);
ERROR 42000: FUNCTION test.myfunc_double does not exist
SELECT myfunc_int(1);
ERROR 42000: FUNCTION test.myfunc_int does not exist
CREATE FUNCTION myfunc_double RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
CREATE AGGREGATE FUNCTION avgcost RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
SELECT myfunc_double(78654);
myfunc_double(78654)
54.00
SELECT myfunc_int(5);
myfunc_int(5)
5
DROP FUNCTION myfunc_int;
SELECT myfunc_double(78654);
myfunc_double(78654)
54.00
SELECT myfunc_int(5);
ERROR 42000: FUNCTION test.myfunc_int does not exist
DROP FUNCTION myfunc_double;
DROP FUNCTION avgcost;
|