Skip to content

Commit 7b1b2ec

Browse files
committed
Merge branch 'main' into jennifer/tf
2 parents a95abfe + 5a790fb commit 7b1b2ec

File tree

17 files changed

+1852
-1567
lines changed

17 files changed

+1852
-1567
lines changed

enginetest/enginetests.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ func TestOrderByGroupBy(t *testing.T, harness Harness) {
828828
// group by with any_value or non-strict are non-deterministic (unless there's only one value), so we must accept multiple
829829
// group by with any_value()
830830

831-
_, rowIter, _, err = e.Query(ctx, "select any_value(id), team from members group by team order by id")
831+
_, rowIter, _, err = e.Query(ctx, "select any_value(id), team from members group by team")
832832
require.NoError(t, err)
833833
rowCount = 0
834834

@@ -867,6 +867,7 @@ func TestOrderByGroupBy(t *testing.T, harness Harness) {
867867
require.Equal(t, rowCount, 3)
868868

869869
AssertErr(t, e, harness, "select id, team from members group by team order by id", nil, analyzererrors.ErrValidationGroupBy)
870+
AssertErr(t, e, harness, "select any_value(id), team from members group by team order by id", nil, analyzererrors.ErrValidationGroupByOrderBy)
870871
})
871872
}
872873

enginetest/queries/order_by_group_by_queries.go

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,8 @@ var OrderByGroupByScriptTests = []ScriptTest{
109109
},
110110
},
111111
{
112-
Query: "select binary s from t group by binary s order by s",
113-
Expected: []sql.Row{
114-
{[]uint8("abc")},
115-
{[]uint8("def")},
116-
},
112+
Query: "select binary s from t group by binary s order by s",
113+
ExpectedErr: analyzererrors.ErrValidationGroupByOrderBy,
117114
},
118115
},
119116
},
@@ -365,4 +362,44 @@ var OrderByGroupByScriptTests = []ScriptTest{
365362
},
366363
},
367364
},
365+
{
366+
Name: "valid group by order by queries",
367+
SetUpScript: []string{
368+
"create table t0(c0 int primary key, c1 int, c2 int, c3 int)",
369+
"insert into t0 values (3, 1, 3, 1), (4, 1, 7, 2), (5, 2, 9, 3),(6,2, 1, 3), (7,2, 2, 2),(8,3,2, 5)",
370+
},
371+
Assertions: []ScriptTestAssertion{
372+
{
373+
// group by primary key
374+
Query: "select c1 from t0 group by c0 order by c2",
375+
Expected: []sql.Row{{2}, {2}, {3}, {1}, {1}, {2}},
376+
},
377+
{
378+
// order by aggregate
379+
Query: "select c1 from t0 group by c1 order by min(c2)",
380+
Expected: []sql.Row{{2}, {3}, {1}},
381+
},
382+
{
383+
// order by alias for column in group by clause
384+
Query: "select c1 as col from t0 group by c1 order by col",
385+
Expected: []sql.Row{{1}, {2}, {3}},
386+
},
387+
{
388+
// order by alias for aggregate column
389+
Query: "select min(c0) as min, c1 from t0 group by c1 order by min",
390+
Expected: []sql.Row{{3, 1}, {5, 2}, {8, 3}},
391+
},
392+
{
393+
// order by multiple columns
394+
Query: "select c1 from t0 group by c1, c2, c3 order by c2, c3",
395+
Expected: []sql.Row{{2}, {2}, {3}, {1}, {1}, {2}},
396+
},
397+
{
398+
// order by functionally dependent column
399+
Dialect: "mysql",
400+
Query: "select c1 from t0 where c2 = 3 group by c1 order by c2",
401+
Expected: []sql.Row{{1}},
402+
},
403+
},
404+
},
368405
}

0 commit comments

Comments
 (0)