一个简单类型的UDF至少需要实现下面三个函数:
l 初始化函数:
这个函数的作用包括:
检查传入主函数的参数个数
检查传入主函数的参数类型
如果主函数内部,需要分配内存,可以在这里进行分配
指定返回值的信息
l 主函数:
这个函数的作用包括:
实现具体的功能。
l 销毁函数:
这个函数的作用包括:
释放初始化函数内分配的内存
其它清理工作
下面通过实现一个UDF来说明三个函数的具体实现:
假设我们要实现一个UDF,这个UDF的功能是对输入的两个参数进行相加,UDF的名字叫做My_SUM。
初始化函数:
my_bool My_SUM_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
{
//参数类型校验
if(args->arg_type[0] != INT_RESULT || args->arg_type[1] != INT_RESULT)
{
strcpy(message,"My_SUM() requires a integer and an integer");
return 1;
}
else
{
return 0;
}
}
主函数:
long long My_SUM(UDF_INIT *initid, UDF_ARGS *args,char *is_null, char *error)
{
//实现具体的功能
long long left_val = *((long long*) args->args[0]);
long long right_val = *((long long*) args->args[1]);
return left_val + right_val;
}
关于亚信安慧AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。




