tidb icon indicating copy to clipboard operation
tidb copied to clipboard

ERROR 1105 (HY000): interface conversion

Open bajinsheng opened this issue 1 year ago • 2 comments

Bug Report

1. Minimal reproduce step (Required)

CREATE TABLE t0(c0 BLOB);
CREATE VIEW v0(c0) AS SELECT NULL FROM t0 GROUP BY NULL;
SELECT t0.c0 FROM t0 NATURAL JOIN v0 WHERE v0.c0 LIKE v0.c0; -- ERROR 1105 (HY000): interface conversion: expression.Expression is *expression.ScalarFunction, not *expression.Column

2. What did you expect to see? (Required)

3. What did you see instead (Required)

Unexpected error

4. What is your TiDB version? (Required)

| Release Version: v7.4.0-alpha-239-g4f2f5e1061 Edition: Community Git Commit Hash: 4f2f5e1061ddc55a2dd349e1df67847c0edd1f23 Git Branch: master UTC Build Time: 2023-08-30 12:06:00 GoVersion: go1.21.0 Race Enabled: false Check Table Before Drop: false Store: unistore |

bajinsheng avatar Aug 31 '23 08:08 bajinsheng

/label fuzz/sqlancer

bajinsheng avatar Aug 31 '23 08:08 bajinsheng

Looks like planner assume join key expr is column here, but actually it's a cast expression.

Error stack:

[2024/01/15 14:01:23.169 +08:00] [ERROR] [conn.go:1021] ["connection running loop panic"] [conn=1570766854] [session_alias=] [lastSQL="SELECT t0.c0 FROM t0 NATURAL JOIN v0 WHERE v0.c0 LIKE v0.c0"] [err="interface conversion:            expression.Expression is *expression.ScalarFunction, not *expression.Column"] [stack="github.com/pingcap/tidb/pkg/server.(*clientConn).Run.func1
      /home/guojiangtao/work/tidb/pkg/server/conn.go:1024
  runtime.gopanic
      /usr/local/go/src/runtime/panic.go:920
  github.com/pingcap/tidb/pkg/executor.(*Compiler).Compile.func1
      /home/guojiangtao/work/tidb/pkg/executor/compiler.go:56
  runtime.gopanic
      /usr/local/go/src/runtime/panic.go:920
  runtime.panicdottypeE
      /usr/local/go/src/runtime/iface.go:263
  runtime.panicdottypeI
      /usr/local/go/src/runtime/iface.go:273
  github.com/pingcap/tidb/pkg/planner/core.(*LogicalJoin).GetJoinKeys
      /home/guojiangtao/work/tidb/pkg/planner/core/logical_plans.go:356
  github.com/pingcap/tidb/pkg/planner/core.(*LogicalJoin).ExtractColGroups
      /home/guojiangtao/work/tidb/pkg/planner/core/stats.go:854
  github.com/pingcap/tidb/pkg/planner/core.(*baseLogicalPlan).recursiveDeriveStats
      /home/guojiangtao/work/tidb/pkg/planner/core/stats.go:130
  github.com/pingcap/tidb/pkg/planner/core.(*joinReorderGreedySolver).constructConnectedJoinTree
      /home/guojiangtao/work/tidb/pkg/planner/core/rule_join_reorder_greedy.go:106
  github.com/pingcap/tidb/pkg/planner/core.(*joinReorderGreedySolver).solve
      /home/guojiangtao/work/tidb/pkg/planner/core/rule_join_reorder_greedy.go:74
  github.com/pingcap/tidb/pkg/planner/core.(*joinReOrderSolver).optimizeRecursive
      /home/guojiangtao/work/tidb/pkg/planner/core/rule_join_reorder.go:294
  github.com/pingcap/tidb/pkg/planner/core.(*joinReOrderSolver).optimizeRecursive
      /home/guojiangtao/work/tidb/pkg/planner/core/rule_join_reorder.go:332
  github.com/pingcap/tidb/pkg/planner/core.(*joinReOrderSolver).optimize
      /home/guojiangtao/work/tidb/pkg/planner/core/rule_join_reorder.go:230
  github.com/pingcap/tidb/pkg/planner/core.logicalOptimize
      /home/guojiangtao/work/tidb/pkg/planner/core/optimizer.go:1166
  github.com/pingcap/tidb/pkg/planner/core.doOptimize
      /home/guojiangtao/work/tidb/pkg/planner/core/optimizer.go:328
  github.com/pingcap/tidb/pkg/planner/core.DoOptimize
      /home/guojiangtao/work/tidb/pkg/planner/core/optimizer.go:370
  github.com/pingcap/tidb/pkg/planner.optimize
      /home/guojiangtao/work/tidb/pkg/planner/optimize.go:504
  github.com/pingcap/tidb/pkg/planner.Optimize
      /home/guojiangtao/work/tidb/pkg/planner/optimize.go:335
  github.com/pingcap/tidb/pkg/executor.(*Compiler).Compile
      /home/guojiangtao/work/tidb/pkg/executor/compiler.go:104
  github.com/pingcap/tidb/pkg/session.(*session).ExecuteStmt
      /home/guojiangtao/work/tidb/pkg/session/session.go:2185
  github.com/pingcap/tidb/pkg/server.(*TiDBContext).ExecuteStmt
      /home/guojiangtao/work/tidb/pkg/server/driver_tidb.go:294
  github.com/pingcap/tidb/pkg/server.(*clientConn).handleStmt
      /home/guojiangtao/work/tidb/pkg/server/conn.go:2024
  github.com/pingcap/tidb/pkg/server.(*clientConn).handleQuery
      /home/guojiangtao/work/tidb/pkg/server/conn.go:1775
  github.com/pingcap/tidb/pkg/server.(*clientConn).dispatch
      /home/guojiangtao/work/tidb/pkg/server/conn.go:1349
  github.com/pingcap/tidb/pkg/server.(*clientConn).Run
      /home/guojiangtao/work/tidb/pkg/server/conn.go:1122

guo-shaoge avatar Jan 15 '24 06:01 guo-shaoge