mysql udf args 的长度计算
1 首先援引一个问题
mysql udf中,入参的args->args在5.7版本以上中,内核alloc args之前会做一次bzero(memset),这样就解决了表中字段作为变量传参udf函数时,字符串长度不准确的问题;
在5.7版本以下的内核中,使用strlen或者sizeof计算出来的args字节数是错误的,问题就是alloc args之前未做bzero;
贴图可以看出来这个问题
在实际中,p可以看,字段内容已经发生问题了
2 如何解决(5.7以上内核版本不需要理会这个事,主要是5.7以下版本)
使用args->lengths[x]这个做统计就可以了,他是每次alloc的字节数最后一次更新,他是准确的