Meituan-Dianping/SQLAdvisor

Segmentation fault

lujinke opened this issue · 3 comments

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