Skip to content

Commit dad340b

Browse files
committed
During join planning, don't assume that every TableAlias wraps an implementer of sql.TableNode.
Only tables that support lookups implement sql.TableNode. Table functions that are not backed by an actual table and don't support lookups do not implement this interface.
1 parent 3374a25 commit dad340b

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

sql/analyzer/indexed_joins.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,10 @@ func addRightSemiJoins(ctx *sql.Context, m *memo.Memo) error {
687687
switch n := leftTab.(type) {
688688
case *plan.TableAlias:
689689
aliasName = n.Name()
690-
leftRt = n.Child.(sql.TableNode)
690+
leftRt, ok = n.Child.(sql.TableNode)
691+
if !ok {
692+
return nil
693+
}
691694
case sql.TableNode:
692695
leftRt = n
693696
}

0 commit comments

Comments
 (0)