我正在用C语言编写我的第一个用户自定义函数。代码很简单:
char *getKey(UDF_INIT *initid __attribute__((unused)),
UDF_ARGS *args, char *result, unsigned long *length,
char *is_null, char *error __attribute__((unused)))
{
const char *word=args->args[0];
strcpy(result,"EOOOOOOOO");
return result;
}
我编译并加载它没有任何问题。
CREATE FUNCTION getKey RETURNS STRING SONAME 'udf_key.so';
要测试它我在插入查询中调用它:
INSERT INTO `seed4c`.`users` (`iduser`,`userscol`) VALUES (1,getkey('aa'));
userscol是一个Varchar(45),因此返回的字符串应该有足够的空间。我正在发出警告
1 row(s) affected, 1 warning(s): 1265 Data truncated for column 'userscol' at row 1
在表格中选择时,该字段具有预期值(EOOOOOOOO)和一些奇怪的字符,非alfanumeric。
我做错了什么?