code: func Parse(ctx sessionctx.Context, src string) ([]ast.StmtNode, error) {
  	logutil.Logger(context.Background()).Debug("compiling", zap.String("source", src))
  	charset, collation := ctx.GetSessionVars().GetCharsetInfo()
  	p := parser.New()
  	p.EnableWindowFunc(ctx.GetSessionVars().EnableWindowFunction)
  	p.SetSQLMode(ctx.GetSessionVars().SQLMode)
  	stmts, warns, err := p.Parse(src, charset, collation)
  	for _, warn := range warns {
  		ctx.GetSessionVars().StmtCtx.AppendWarning(warn)
  	}
  	if err != nil {
  		logutil.Logger(context.Background()).Warn("compiling",
  			zap.String("source", src),
  			zap.Error(err))
  		return nil, err
  	}
  	return stmts, nil
  }
docs: // Parse parses a query string to raw ast.StmtNode.