使用sqle审核mysql含有子查询的sql后台出现panic
SQLe Version main-ee 5da439b28d06a6d75ce8dc9cb02192f0d11732b2
Describe the bug 使用sqle审核时,使用mysql语句where in中含有子查询的sql时后台出现panic (当in中子句表作为驱动表时)
To Reproduce
表结构:
1、创建工单
2、输入选择数据库sql并输入sql语句SELECT * FROM fruits WHERE name IN ( SELECT md5 (c) FROM t16 );
3、点击审核
Expected behavior 返回审核结果
Suggestion
提示报错,查看后台出现panic
goroutine 128 [running]: runtime/debug.Stack() /usr/local/go/src/runtime/debug/stack.go:24 +0x7a runtime/debug.PrintStack() /usr/local/go/src/runtime/debug/stack.go:16 +0x19 github.com/actiontech/sqle/sqle/server.hookAudit.func1() /home/sqledevelop/ee/sqle-ee/sqle/server/audit.go:125 +0x5e panic({0x22b9780, 0x459f2d0}) /usr/local/go/src/runtime/panic.go:890 +0x267 github.com/actiontech/sqle/sqle/driver/mysql.(*threeStarIndexAdvisor).Enter(0xc001426000, {0x28364d0, 0xc0005c8240}) /home/sqledevelop/ee/sqle-ee/sqle/driver/mysql/advisor.go:518 +0x248 github.com/pingcap/parser/ast.(*PatternInExpr).Accept(0xc0005c8240, {0x2823b28, 0xc001426000}) /home/sqledevelop/ee/sqle-ee/vendor/github.com/pingcap/parser/ast/expressions.go:742 +0x83 github.com/actiontech/sqle/sqle/driver/mysql.(*threeStarIndexAdvisor).extractColumnInSelect(0xc001426000) /home/sqledevelop/ee/sqle-ee/sqle/driver/mysql/advisor.go:424 +0xf5 github.com/actiontech/sqle/sqle/driver/mysql.(*threeStarIndexAdvisor).GiveAdvices(0xc001426000) /home/sqledevelop/ee/sqle-ee/sqle/driver/mysql/advisor.go:340 +0x265 github.com/actiontech/sqle/sqle/driver/mysql.optimize(0xc00034c9a0, 0xc00041cf80, {0x2836950, 0xc001304ea0}, {0xc001264f90, 0x2, 0x2}) /home/sqledevelop/ee/sqle-ee/sqle/driver/mysql/advisor.go:53 +0x234 github.com/actiontech/sqle/sqle/driver/mysql.(*MysqlDriverImpl).audit(0xc001684900, {0x282e968, 0xc0001b8028}, {0xc001318d20, 0x53}) /home/sqledevelop/ee/sqle-ee/sqle/driver/mysql/mysql.go:376 +0x1311 github.com/actiontech/sqle/sqle/driver/mysql.(*MysqlDriverImpl).Audit(0xc001684900, {0x282e968, 0xc0001b8028}, {0xc0012782d0, 0x1, 0x1}) /home/sqledevelop/ee/sqle-ee/sqle/driver/mysql/mysql.go:285 +0x252 github.com/actiontech/sqle/sqle/server.hookAudit(0xc0003fa3f0, 0xc0002e0e00, {0x2840a80, 0xc001684900}, {0x2823f60, 0x463d6c8}, {0x463d6c8, 0x0, 0x0}) /home/sqledevelop/ee/sqle-ee/sqle/server/audit.go:193 +0x6c3 github.com/actiontech/sqle/sqle/server.audit(0xc0003fa3f0, 0xc0002e0e00, {0x2840a80, 0xc001684900}, {0x463d6c8, 0x0, 0x0}) /home/sqledevelop/ee/sqle-ee/sqle/server/audit.go:108 +0xab github.com/actiontech/sqle/sqle/server.(*action).audit(0xc00045e900) /home/sqledevelop/ee/sqle-ee/sqle/server/sqled.go:295 +0xe8 github.com/actiontech/sqle/sqle/server.(*Sqled).do(0xc000337360, 0xc00045e900) /home/sqledevelop/ee/sqle-ee/sqle/server/sqled.go:177 +0x71 github.com/actiontech/sqle/sqle/server.(*Sqled).taskLoop.func1() /home/sqledevelop/ee/sqle-ee/sqle/server/sqled.go:165 +0x45 created by github.com/actiontech/sqle/sqle/server.(*Sqled).taskLoop /home/sqledevelop/ee/sqle-ee/sqle/server/sqled.go:164 +0x171