SQLAdvisor
SQLAdvisor copied to clipboard
Segmentation fault
select * from rocket_release where end_time>start_time order by id desc
日志:
2020-06-03 15:38:00 7482 [Note] 第1步: 对SQL解析优化之后得到的SQL:select *
AS *
from nasa
.rocket_release
where (end_time
> start_time
) order by id
desc
2020-06-03 15:38:00 7482 [Note] 第2步:开始解析join on条件:end_time=start_time
Segmentation fault
没看实现代码,但是估计是识别解析的逻辑有问题,不知道这里为什么会有join on条件
测试发现只要条件中有两个列比较的谓词,都会触发这个BUG,如col1=col2,col1<>col2,col1>col2等
不知道是因为mysql版本还是系统版本原因,我这也报这个错。不更新了,好可惜。
有同学已经编译了docker镜像,启动一个容器
docker run -d --name=sqladvisor ppabc/sqladvisor
在容器里执行sqladvisor即可,不报错
docker exec -it sqladvisor bash sqladvisor -h 172.17.10.84 -P 3306 -u root -p 密码 -d test -q "select * from t4 where tcol04=1;" -v 1