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

Method parseRoleName

parser/parse_system.go:358–397  ·  view source on GitHub ↗
(_ Pos)

Source from the content-addressed store, hash-verified

356}
357
358func (p *Parser) parseRoleName(_ Pos) (*RoleName, error) {
359 switch {
360 case p.matchTokenKind(TokenKindIdent):
361 name, err := p.parseIdent()
362 if err != nil {
363 return nil, err
364 }
365 var scope *StringLiteral
366 if p.tryConsumeTokenKind(TokenKindAtSign) != nil {
367 scope, err = p.parseString(p.Pos())
368 if err != nil {
369 return nil, err
370 }
371 }
372 onCluster, err := p.tryParseClusterClause(p.Pos())
373 if err != nil {
374 return nil, err
375 }
376 return &RoleName{
377 Name: name,
378 Scope: scope,
379 OnCluster: onCluster,
380 }, nil
381 case p.matchTokenKind(TokenKindString):
382 name, err := p.parseString(p.Pos())
383 if err != nil {
384 return nil, err
385 }
386 onCluster, err := p.tryParseClusterClause(p.Pos())
387 if err != nil {
388 return nil, err
389 }
390 return &RoleName{
391 Name: name,
392 OnCluster: onCluster,
393 }, nil
394 default:
395 return nil, fmt.Errorf("expected <ident> or <string>")
396 }
397}
398
399func (p *Parser) tryParseRoleSettings(pos Pos) ([]*RoleSetting, error) {
400 if !p.tryConsumeKeywords(KeywordSettings) {

Callers 6

parseCreateRoleMethod · 0.95
parseGranteesClauseMethod · 0.95
parseUserNamesMethod · 0.95
parserDropUserOrRoleMethod · 0.95
parseRoleRenamePairMethod · 0.95

Calls 6

matchTokenKindMethod · 0.95
parseIdentMethod · 0.95
tryConsumeTokenKindMethod · 0.95
parseStringMethod · 0.95
PosMethod · 0.95
tryParseClusterClauseMethod · 0.95

Tested by

no test coverage detected