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

Method parsePrivilegeClause

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

Source from the content-addressed store, hash-verified

1182}
1183
1184func (p *Parser) parsePrivilegeClause(pos Pos) (*PrivilegeClause, error) {
1185 if p.matchTokenKind(TokenKindIdent) {
1186 if p.last().String == "dictGet" {
1187 _ = p.lexer.consumeToken()
1188 return &PrivilegeClause{
1189 PrivilegePos: pos,
1190 Keywords: []string{"dictGet"},
1191 }, nil
1192 }
1193 }
1194 switch {
1195 case p.matchOneOfKeywords(KeywordSelect, KeywordInsert):
1196 return p.parsePrivilegeSelectOrInsert(pos)
1197 case p.tryConsumeKeywords(KeywordAlter):
1198 return p.parsePrivilegeAlter(pos)
1199 case p.tryConsumeKeywords(KeywordCreate):
1200 return p.parsePrivilegeCreate(pos)
1201 case p.tryConsumeKeywords(KeywordDrop):
1202 return p.parsePrivilegeDrop(pos)
1203 case p.tryConsumeKeywords(KeywordShow):
1204 return p.parsePrivilegeShow(pos)
1205 case p.matchKeyword(KeywordAll), p.matchTokenKind(KeywordNone):
1206 _ = p.lexer.consumeToken()
1207 return &PrivilegeClause{
1208 PrivilegePos: pos,
1209 Keywords: []string{KeywordAll},
1210 }, nil
1211 case p.tryConsumeKeywords(KeywordKill):
1212 if err := p.expectKeyword(KeywordQuery); err != nil {
1213 return nil, err
1214 }
1215 return &PrivilegeClause{
1216 PrivilegePos: pos,
1217 Keywords: []string{KeywordKill, KeywordQuery},
1218 }, nil
1219 case p.tryConsumeKeywords(KeywordSystem):
1220 return p.parsePrivilegeSystem(pos)
1221 case p.tryConsumeKeywords(KeywordAdmin):
1222 if err := p.expectKeyword(KeywordOption); err != nil {
1223 return nil, err
1224 }
1225 return &PrivilegeClause{
1226 PrivilegePos: pos,
1227 Keywords: []string{KeywordAdmin, KeywordOption},
1228 }, nil
1229 case p.matchOneOfKeywords(KeywordOptimize, KeywordTruncate):
1230 keyword := p.last().String
1231 _ = p.lexer.consumeToken()
1232 return &PrivilegeClause{
1233 PrivilegePos: pos,
1234 Keywords: []string{keyword},
1235 }, nil
1236 case p.tryConsumeKeywords(KeywordRole):
1237 if err := p.expectKeyword(KeywordAdmin); err != nil {
1238 return nil, err
1239 }
1240 return &PrivilegeClause{
1241 PrivilegePos: pos,

Callers 1

Calls 13

matchTokenKindMethod · 0.95
lastMethod · 0.95
matchOneOfKeywordsMethod · 0.95
tryConsumeKeywordsMethod · 0.95
parsePrivilegeAlterMethod · 0.95
parsePrivilegeCreateMethod · 0.95
parsePrivilegeDropMethod · 0.95
parsePrivilegeShowMethod · 0.95
matchKeywordMethod · 0.95
expectKeywordMethod · 0.95
parsePrivilegeSystemMethod · 0.95

Tested by

no test coverage detected