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

Method parseHostClause

parser/parse_system.go:601–629  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

599}
600
601func (p *Parser) parseHostClause(pos Pos) (*HostClause, error) {
602 if err := p.expectKeyword(KeywordHost); err != nil {
603 return nil, err
604 }
605
606 host := &HostClause{HostPos: pos}
607
608 switch {
609 case p.matchOneOfKeywords(KeywordLocal, KeywordAny, KeywordNone):
610 hostType := p.last().String
611 _ = p.lexer.consumeToken()
612 host.HostType = hostType
613 host.HostEnd = p.last().End
614 case p.matchOneOfKeywords(KeywordName, KeywordRegexp, KeywordIp, KeywordLike):
615 hostType := p.last().String
616 _ = p.lexer.consumeToken()
617 host.HostType = hostType
618 value, err := p.parseString(p.Pos())
619 if err != nil {
620 return nil, err
621 }
622 host.HostValue = value
623 host.HostEnd = value.End()
624 default:
625 return nil, fmt.Errorf("expected LOCAL|NAME|REGEXP|IP|LIKE|ANY|NONE")
626 }
627
628 return host, nil
629}
630
631func (p *Parser) parseDefaultRoleClause(pos Pos) (*DefaultRoleClause, error) {
632 if err := p.expectKeyword(KeywordDefault); err != nil {

Callers 1

parseHostClausesMethod · 0.95

Calls 7

expectKeywordMethod · 0.95
matchOneOfKeywordsMethod · 0.95
lastMethod · 0.95
parseStringMethod · 0.95
PosMethod · 0.95
consumeTokenMethod · 0.80
EndMethod · 0.65

Tested by

no test coverage detected