1. 简单的 如string相关的函数2. 集合的 aggregate,如sum函数
SONAME 链接库的名称
类型 |
描述 |
---|---|
STRING |
char * |
INTEGER |
64位int,__int64,unsigned __int64 |
REAL |
double |
DECIAML |
还没完成,char* |
UDF_INIT:
类型 |
名称 |
描述 |
---|---|---|
my_bool |
maybe_null |
1 如果返回NULL |
unsigned int |
decimals |
用在REAL函数 |
unsigned long |
max_length |
用于STRING函数 |
char * |
ptr |
函数数据的自由指针 |
my_bool |
const_item |
0时参数无关 |
UDF_ARGS:
类型 |
名称 |
描述 |
---|---|---|
unsigned int |
arg_count |
参数个数 |
enum Item_result * |
arg_type |
参数类型 |
char ** |
args |
参数 |
unsigned long * |
lengths |
参数长度 |
char * |
maybe_null |
当置1时,参数可以为NULL |
char ** |
attributes |
属性 |
unsigned long * |
attribute_lengths |
属性长度 |
模板
my_bool MyTest_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
{
}
void MyTest_deinit(UDF_INIT *initid)
{
}
//以下为不同情况的函数
longlong MyTest(UDF_INIT *initid, UDF_ARGS *args,char *is_null, char *error)
{
}
double MyTest(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
{
}
char* MyTest(UDF_INIT *initid, UDF_ARGS *args,char *result, unsigned long *length,char *is_null, char *error)
{
}
//END
//以下用于集合
void MyTest_clear(UDF_INIT *initid, char *is_null, char *error)
{
}
void MyTest_add(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
{
}
//END
如果有建议或疑问欢迎留言