MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / parseRoleOption

Method parseRoleOption

pkg/sql/parser/alter.go:330–408  ·  view source on GitHub ↗

parseRoleOption parses a role option

()

Source from the content-addressed store, hash-verified

328
329// parseRoleOption parses a role option
330func (p *Parser) parseRoleOption() (*ast.RoleOption, error) {
331 option := &ast.RoleOption{}
332
333 switch {
334 case p.isType(models.TokenTypeSuperuser):
335 option.Name = "SUPERUSER"
336 option.Type = ast.SuperUser
337 option.Value = true
338 p.advance()
339 case p.isType(models.TokenTypeNosuperuser):
340 option.Name = "SUPERUSER"
341 option.Type = ast.SuperUser
342 option.Value = false
343 p.advance()
344
345 case p.isType(models.TokenTypeCreateDB):
346 option.Name = "CREATEDB"
347 option.Type = ast.CreateDB
348 option.Value = true
349 p.advance()
350 case p.isType(models.TokenTypeNocreatedb):
351 option.Name = "CREATEDB"
352 option.Type = ast.CreateDB
353 option.Value = false
354 p.advance()
355
356 case p.isType(models.TokenTypeCreateRole):
357 option.Name = "CREATEROLE"
358 option.Type = ast.CreateRole
359 option.Value = true
360 p.advance()
361 case p.isType(models.TokenTypeNocreaterole):
362 option.Name = "CREATEROLE"
363 option.Type = ast.CreateRole
364 option.Value = false
365 p.advance()
366
367 case p.isType(models.TokenTypeLogin):
368 option.Name = "LOGIN"
369 option.Type = ast.Login
370 option.Value = true
371 p.advance()
372 case p.isType(models.TokenTypeNologin):
373 option.Name = "LOGIN"
374 option.Type = ast.Login
375 option.Value = false
376 p.advance()
377
378 case p.matchType(models.TokenTypePassword):
379 option.Name = "PASSWORD"
380 option.Type = ast.Password
381 if p.matchType(models.TokenTypeNull) {
382 option.Value = nil
383 } else {
384 expr, err := p.parseExpression()
385 if err != nil {
386 return nil, err
387 }

Callers 1

Calls 5

isTypeMethod · 0.95
advanceMethod · 0.95
matchTypeMethod · 0.95
parseExpressionMethod · 0.95
expectedErrorMethod · 0.95

Tested by

no test coverage detected