code: func (e *SimpleExec) Next(ctx context.Context, req *chunk.RecordBatch) (err error) {
  	if e.done {
  		return nil
  	}
  	switch x := e.Statement.(type) {
  	case *ast.GrantRoleStmt:
  		err = e.executeGrantRole(x)
  	case *ast.UseStmt:
  		err = e.executeUse(x)
  	case *ast.FlushStmt:
  		err = e.executeFlush(x)
  	case *ast.BeginStmt:
  		err = e.executeBegin(ctx, x)
  	case *ast.CommitStmt:
  		e.executeCommit(x)
  	case *ast.RollbackStmt:
  		err = e.executeRollback(x)
  	case *ast.CreateUserStmt:
  		err = e.executeCreateUser(x)
  	case *ast.AlterUserStmt:
  		err = e.executeAlterUser(x)
  	case *ast.DropUserStmt:
  		err = e.executeDropUser(x)
  	case *ast.SetPwdStmt:
  		err = e.executeSetPwd(x)
  	case *ast.KillStmt:
  		err = e.executeKillStmt(x)
  	case *ast.BinlogStmt:
  		// We just ignore it.
  		return nil
  	case *ast.DropStatsStmt:
  		err = e.executeDropStats(x)
  	case *ast.SetRoleStmt:
  		err = e.executeSetRole(x)
  	case *ast.RevokeRoleStmt:
  		err = e.executeRevokeRole(x)
  	case *ast.SetDefaultRoleStmt:
  		err = e.executeSetDefaultRole(x)
  	}
  	e.done = true
  	return err
  }
docs: // Next implements the Executor Next interface.