parseRoleOption parses a role option
()
| 328 | |
| 329 | // parseRoleOption parses a role option |
| 330 | func (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 | } |
no test coverage detected