code: func parseExpression(expr string) (node ast.ExprNode, err error) {
  	expr = fmt.Sprintf("select %s", expr)
  	charset, collation := charset.GetDefaultCharsetAndCollate()
  	stmts, _, err := parser.New().Parse(expr, charset, collation)
  	if err == nil {
  		node = stmts[0].(*ast.SelectStmt).Fields.Fields[0].Expr
  	}
  	return node, util.SyntaxError(err)
  }
docs: // ParseExpression parses an ExprNode from a string.
  // When TiDB loads infoschema from TiKV, `GeneratedExprString`
  // of `ColumnInfo` is a string field, so we need to parse
  // it into ast.ExprNode. This function is for that.