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的字节数最后一次更新,他是准确的

猜你喜欢

转载自www.cnblogs.com/liuzhuan23/p/12966371.html