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

Method parseAlterRole

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

Source from the content-addressed store, hash-verified

1370}
1371
1372func (p *Parser) parseAlterRole(pos Pos) (*AlterRole, error) {
1373 if err := p.expectKeyword(KeywordRole); err != nil {
1374 return nil, err
1375 }
1376
1377 ifExists, err := p.tryParseIfExists()
1378 if err != nil {
1379 return nil, err
1380 }
1381
1382 roleRenamePairs := make([]*RoleRenamePair, 0)
1383 roleRenamePair, err := p.parseRoleRenamePair(p.Pos())
1384 if err != nil {
1385 return nil, err
1386 }
1387 roleRenamePairs = append(roleRenamePairs, roleRenamePair)
1388 for p.tryConsumeTokenKind(TokenKindComma) != nil {
1389 roleRenamePair, err := p.parseRoleRenamePair(p.Pos())
1390 if err != nil {
1391 return nil, err
1392 }
1393 roleRenamePairs = append(roleRenamePairs, roleRenamePair)
1394 }
1395 statementEnd := roleRenamePairs[len(roleRenamePairs)-1].End()
1396
1397 settings, err := p.tryParseRoleSettings(p.Pos())
1398 if err != nil {
1399 return nil, err
1400 }
1401 if settings != nil {
1402 statementEnd = settings[len(settings)-1].End()
1403 }
1404
1405 return &AlterRole{
1406 AlterPos: pos,
1407 StatementEnd: statementEnd,
1408 IfExists: ifExists,
1409 RoleRenamePairs: roleRenamePairs,
1410 Settings: settings,
1411 }, nil
1412}
1413
1414func (p *Parser) parseRoleRenamePair(_ Pos) (*RoleRenamePair, error) {
1415 roleName, err := p.parseRoleName(p.Pos())

Callers 1

parseDDLMethod · 0.95

Calls 7

expectKeywordMethod · 0.95
tryParseIfExistsMethod · 0.95
parseRoleRenamePairMethod · 0.95
PosMethod · 0.95
tryConsumeTokenKindMethod · 0.95
tryParseRoleSettingsMethod · 0.95
EndMethod · 0.65

Tested by

no test coverage detected