From 93014cf522367a66f8f0f3ac8de9b915a06b1b74 Mon Sep 17 00:00:00 2001 From: Miguel Molina Date: Fri, 13 Sep 2019 11:21:23 +0200 Subject: [PATCH] analyzer: do not erase sort node when pushing it down Signed-off-by: Miguel Molina --- engine_test.go | 6 ++++++ sql/analyzer/resolve_orderby.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/engine_test.go b/engine_test.go index 82e7fc65f..389c714f4 100644 --- a/engine_test.go +++ b/engine_test.go @@ -2536,6 +2536,12 @@ func TestOrderByGroupBy(t *testing.T) { require.NoError(err) require.Equal(expected, rows) + + _, _, err = e.Query( + newCtx(), + "SELECT team, COUNT(*) FROM members GROUP BY team ORDER BY columndoesnotexist", + ) + require.Error(err) } func TestTracing(t *testing.T) { diff --git a/sql/analyzer/resolve_orderby.go b/sql/analyzer/resolve_orderby.go index d4491f2a9..b7e7dfc65 100644 --- a/sql/analyzer/resolve_orderby.go +++ b/sql/analyzer/resolve_orderby.go @@ -164,7 +164,7 @@ func pushSortDown(sort *plan.Sort) (sql.Node, error) { plan.NewSort(sort.SortFields, child.Child), ), nil case *plan.ResolvedTable: - return child, nil + return sort, nil default: children := child.Children() if len(children) == 1 {