MCPcopy Create free account
hub / github.com/AfterShip/clickhouse-sql-parser / parseCreateFunction

Method parseCreateFunction

parser/parser_table.go:1969–2008  ·  view source on GitHub ↗
(pos Pos, orReplace bool)

Source from the content-addressed store, hash-verified

1967}
1968
1969func (p *Parser) parseCreateFunction(pos Pos, orReplace bool) (*CreateFunction, error) {
1970 if err := p.expectKeyword(KeywordFunction); err != nil {
1971 return nil, err
1972 }
1973 ifNotExists, err := p.tryParseIfNotExists()
1974 if err != nil {
1975 return nil, err
1976 }
1977 functionName, err := p.parseIdent()
1978 if err != nil {
1979 return nil, err
1980 }
1981 onCluster, err := p.tryParseClusterClause(p.Pos())
1982 if err != nil {
1983 return nil, err
1984 }
1985 if err := p.expectKeyword(KeywordAs); err != nil {
1986 return nil, err
1987 }
1988 params, err := p.parseFunctionParams(p.Pos())
1989 if err != nil {
1990 return nil, err
1991 }
1992 if err := p.expectTokenKind(TokenKindArrow); err != nil {
1993 return nil, err
1994 }
1995 expr, err := p.parseExpr(p.Pos())
1996 if err != nil {
1997 return nil, err
1998 }
1999 return &CreateFunction{
2000 CreatePos: pos,
2001 OrReplace: orReplace,
2002 IfNotExists: ifNotExists,
2003 FunctionName: functionName,
2004 OnCluster: onCluster,
2005 Params: params,
2006 Expr: expr,
2007 }, nil
2008}
2009
2010// Dictionary parsing functions
2011

Callers 1

parseDDLMethod · 0.95

Calls 8

expectKeywordMethod · 0.95
tryParseIfNotExistsMethod · 0.95
parseIdentMethod · 0.95
tryParseClusterClauseMethod · 0.95
PosMethod · 0.95
parseFunctionParamsMethod · 0.95
expectTokenKindMethod · 0.95
parseExprMethod · 0.95

Tested by

no test coverage detected