diff --git a/enginetest/queries.go b/enginetest/queries.go index 0c89d493a7..f9c20515cf 100755 --- a/enginetest/queries.go +++ b/enginetest/queries.go @@ -661,6 +661,10 @@ var QueryTests = []QueryTest{ Query: "SELECT i FROM mytable ORDER BY i LIMIT 1 OFFSET 1;", Expected: []sql.Row{{int64(2)}}, }, + { + Query: "SELECT i FROM mytable WHERE i NOT IN (SELECT i FROM (SELECT * FROM (SELECT i as i, s as s FROM mytable) f) s)", + Expected: []sql.Row{}, + }, { Query: "SELECT i FROM (SELECT 1 AS i FROM DUAL UNION SELECT 2 AS i FROM DUAL) some_is WHERE i NOT IN (SELECT i FROM (SELECT 1 as i FROM DUAL) different_is);", Expected: []sql.Row{{int64(2)}}, diff --git a/sql/analyzer/prune_columns.go b/sql/analyzer/prune_columns.go index 06e841aa28..7d65605334 100644 --- a/sql/analyzer/prune_columns.go +++ b/sql/analyzer/prune_columns.go @@ -294,7 +294,7 @@ func fixRemainingFieldsIndexes(n sql.Node, scope *Scope) (sql.Node, error) { return plan.TransformUp(n, func(n sql.Node) (sql.Node, error) { switch n := n.(type) { case *plan.SubqueryAlias: - child, err := fixRemainingFieldsIndexes(n.Child, scope) + child, err := fixRemainingFieldsIndexes(n.Child, nil) if err != nil { return nil, err }