code: func (e *StreamAggExec) Open(ctx context.Context) error {
  	if err := e.baseExecutor.Open(ctx); err != nil {
  		return err
  	}
  	e.childResult = e.children[0].newFirstChunk()
  	e.executed = false
  	e.isChildReturnEmpty = true
  	e.inputIter = chunk.NewIterator4Chunk(e.childResult)
  	e.inputRow = e.inputIter.End()
  
  	e.partialResults = make([]aggfuncs.PartialResult, 0, len(e.aggFuncs))
  	for _, aggFunc := range e.aggFuncs {
  		e.partialResults = append(e.partialResults, aggFunc.AllocPartialResult())
  	}
  
  	return nil
  }
docs: // Open implements the Executor Open interface.