Skip to content

Commit

Permalink
executor: reset groupChecker for StreamAggExec when Close (#10615) (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
XuHuaiyu authored and zz-jason committed May 30, 2019
1 parent a6cb414 commit 52dde3b
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
10 changes: 10 additions & 0 deletions executor/aggregate.go
Original file line number Diff line number Diff line change
Expand Up @@ -789,6 +789,7 @@ func (e *StreamAggExec) Open(ctx context.Context) error {
// Close implements the Executor Close interface.
func (e *StreamAggExec) Close() error {
e.childResult = nil
e.groupChecker.reset()
return e.baseExecutor.Close()
}

Expand Down Expand Up @@ -954,3 +955,12 @@ func (e *groupChecker) meetNewGroup(row chunk.Row) (bool, error) {
}
return !firstGroup, nil
}

func (e *groupChecker) reset() {
if e.curGroupKey != nil {
e.curGroupKey = e.curGroupKey[:0]
}
if e.tmpGroupKey != nil {
e.tmpGroupKey = e.tmpGroupKey[:0]
}
}
11 changes: 11 additions & 0 deletions executor/aggregate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -710,3 +710,14 @@ func (s *testSuite1) TestIssue10098(c *C) {
tk.MustExec("insert into t values('1', '222'), ('12', '22')")
tk.MustQuery("select group_concat(distinct a, b) from t").Check(testkit.Rows("1222,1222"))
}

func (s *testSuite1) TestIssue10608(c *C) {
tk := testkit.NewTestKitWithInit(c, s.store)
tk.MustExec(`drop table if exists t, s;`)
tk.MustExec("create table t(a int)")
tk.MustExec("create table s(a int, b int)")
tk.MustExec("insert into s values(100292, 508931), (120002, 508932)")
tk.MustExec("insert into t values(508931), (508932)")
tk.MustQuery("select (select group_concat(concat(123,'-')) from t where t.a = s.b group by t.a) as t from s;").Check(testkit.Rows("123-", "123-"))

}

0 comments on commit 52dde3b

Please sign in to comment.