code: func (e *ProjectionExec) Open(ctx context.Context) error {
  	if err := e.baseExecutor.Open(ctx); err != nil {
  		return err
  	}
  
  	e.prepared = false
  	e.parentReqRows = int64(e.maxChunkSize)
  
  	// For now a Projection can not be executed vectorially only because it
  	// contains "SetVar" or "GetVar" functions, in this scenario this
  	// Projection can not be executed parallelly.
  	if e.numWorkers > 0 && !e.evaluatorSuit.Vectorizable() {
  		e.numWorkers = 0
  	}
  
  	if e.isUnparallelExec() {
  		e.childResult = e.children[0].newFirstChunk()
  	}
  
  	return nil
  }
docs: // Open implements the Executor Open interface.