Skip to content

Commit a541a4f

Browse files
authored
pkg/executor,tests: reset params in the PipelineWindow.Open (#54709)
close #53600
1 parent d4c26ca commit a541a4f

File tree

4 files changed

+1043
-16
lines changed

4 files changed

+1043
-16
lines changed

pkg/executor/builder.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -4959,10 +4959,15 @@ func (b *executorBuilder) buildWindow(v *plannercore.PhysicalWindow) exec.Execut
49594959
BaseExecutor: base,
49604960
groupChecker: vecgroupchecker.NewVecGroupChecker(b.ctx.GetExprCtx().GetEvalCtx(), b.ctx.GetSessionVars().EnableVectorizedExpression, groupByItems),
49614961
numWindowFuncs: len(v.WindowFuncDescs),
4962+
windowFuncs: windowFuncs,
4963+
partialResults: partialResults,
4964+
}
4965+
exec.slidingWindowFuncs = make([]aggfuncs.SlidingWindowAggFunc, len(exec.windowFuncs))
4966+
for i, windowFunc := range exec.windowFuncs {
4967+
if slidingWindowAggFunc, ok := windowFunc.(aggfuncs.SlidingWindowAggFunc); ok {
4968+
exec.slidingWindowFuncs[i] = slidingWindowAggFunc
4969+
}
49624970
}
4963-
4964-
exec.windowFuncs = windowFuncs
4965-
exec.partialResults = partialResults
49664971
if v.Frame == nil {
49674972
exec.start = &logicalop.FrameBound{
49684973
Type: ast.Preceding,

pkg/executor/pipelined_window.go

+4-13
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,10 @@ func (e *PipelinedWindowExec) Close() error {
8484

8585
// Open implements the Executor Open interface
8686
func (e *PipelinedWindowExec) Open(ctx context.Context) (err error) {
87-
e.rowToConsume = 0
88-
e.done = false
89-
e.accumulated = 0
90-
e.dropped = 0
91-
e.data = make([]dataInfo, 0)
92-
e.dataIdx = 0
93-
e.slidingWindowFuncs = make([]aggfuncs.SlidingWindowAggFunc, len(e.windowFuncs))
94-
for i, windowFunc := range e.windowFuncs {
95-
if slidingWindowAggFunc, ok := windowFunc.(aggfuncs.SlidingWindowAggFunc); ok {
96-
e.slidingWindowFuncs[i] = slidingWindowAggFunc
97-
}
98-
}
99-
e.rows = make([]chunk.Row, 0)
87+
e.done, e.newPartition, e.whole, e.initializedSlidingWindow = false, false, false, false
88+
e.dataIdx, e.curRowIdx, e.dropped, e.rowToConsume, e.accumulated = 0, 0, 0, 0, 0
89+
e.lastStartRow, e.lastEndRow, e.stagedStartRow, e.stagedEndRow, e.rowStart, e.rowCnt = 0, 0, 0, 0, 0, 0
90+
e.rows, e.data = make([]chunk.Row, 0), make([]dataInfo, 0)
10091
return e.BaseExecutor.Open(ctx)
10192
}
10293

0 commit comments

Comments
 (0)