(pos Pos)
| 76 | } |
| 77 | |
| 78 | func (p *Parser) parseCreateDatabase(pos Pos) (*CreateDatabase, error) { |
| 79 | if err := p.expectKeyword(KeywordDatabase); err != nil { |
| 80 | return nil, err |
| 81 | } |
| 82 | |
| 83 | // try to parse IF NOT EXISTS clause |
| 84 | ifNotExists, err := p.tryParseIfNotExists() |
| 85 | if err != nil { |
| 86 | return nil, err |
| 87 | } |
| 88 | // parse database name |
| 89 | name, err := p.parseIdent() |
| 90 | if err != nil { |
| 91 | return nil, err |
| 92 | } |
| 93 | StatementEnd := name.End() |
| 94 | onCluster, err := p.tryParseClusterClause(p.Pos()) |
| 95 | if err != nil { |
| 96 | return nil, err |
| 97 | } |
| 98 | if onCluster != nil { |
| 99 | StatementEnd = onCluster.End() |
| 100 | } |
| 101 | engineExpr, err := p.tryParseEngineExpr(p.Pos()) |
| 102 | if err != nil { |
| 103 | return nil, err |
| 104 | } |
| 105 | if engineExpr != nil { |
| 106 | StatementEnd = engineExpr.End() |
| 107 | } |
| 108 | commentExpr, err := p.tryParseComment() |
| 109 | if err != nil { |
| 110 | return nil, err |
| 111 | } |
| 112 | return &CreateDatabase{ |
| 113 | CreatePos: pos, |
| 114 | StatementEnd: StatementEnd, |
| 115 | Name: name, |
| 116 | IfNotExists: ifNotExists, |
| 117 | OnCluster: onCluster, |
| 118 | Engine: engineExpr, |
| 119 | Comment: commentExpr, |
| 120 | }, nil |
| 121 | } |
| 122 | |
| 123 | func (p *Parser) parseCreateDictionary(pos Pos, orReplace bool) (*CreateDictionary, error) { |
| 124 | if err := p.expectKeyword(KeywordDictionary); err != nil { |
no test coverage detected