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

Method parsePrivilegeCreate

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

Source from the content-addressed store, hash-verified

1052}
1053
1054func (p *Parser) parsePrivilegeCreate(pos Pos) (*PrivilegeClause, error) {
1055 keywords := []string{KeywordCreate}
1056 switch {
1057 case p.matchOneOfKeywords(KeywordDatabase, KeywordDictionary, KeywordTable, KeywordFunction, KeywordView, KeywordUser, KeywordRole, KeywordQuota):
1058 keyword := p.last().String
1059 _ = p.lexer.consumeToken()
1060 keywords = append(keywords, keyword)
1061 case p.tryConsumeKeywords(KeywordTemporary):
1062 if err := p.expectKeyword(KeywordTable); err != nil {
1063 return nil, err
1064 }
1065 keywords = append(keywords, KeywordTemporary, KeywordTable)
1066 case p.tryConsumeKeywords(KeywordRows):
1067 if err := p.expectKeyword(KeywordPolicy); err != nil {
1068 return nil, err
1069 }
1070 keywords = append(keywords, KeywordRows, KeywordPolicy)
1071 default:
1072 return nil, fmt.Errorf("expected DATABASE|DICTIONARY|TABLE|FUNCTION|VIEW|USER|ROLE|ROWS")
1073 }
1074 return &PrivilegeClause{
1075 PrivilegePos: pos,
1076 Keywords: keywords,
1077 }, nil
1078}
1079
1080func (p *Parser) parsePrivilegeDrop(pos Pos) (*PrivilegeClause, error) {
1081 keywords := []string{KeywordDrop}

Callers 1

parsePrivilegeClauseMethod · 0.95

Calls 5

matchOneOfKeywordsMethod · 0.95
lastMethod · 0.95
tryConsumeKeywordsMethod · 0.95
expectKeywordMethod · 0.95
consumeTokenMethod · 0.80

Tested by

no test coverage detected