(pos Pos)
| 136 | } |
| 137 | |
| 138 | func (p *Parser) parseAlterTableAddIndex(pos Pos) (*AlterTableAddIndex, error) { |
| 139 | indexPos := p.Pos() |
| 140 | if err := p.expectKeyword(KeywordIndex); err != nil { |
| 141 | return nil, err |
| 142 | } |
| 143 | |
| 144 | ifNotExists, err := p.tryParseIfNotExists() |
| 145 | if err != nil { |
| 146 | return nil, err |
| 147 | } |
| 148 | index, err := p.parseTableIndex(indexPos) |
| 149 | if err != nil { |
| 150 | return nil, err |
| 151 | } |
| 152 | statementEnd := index.End() |
| 153 | after, err := p.tryParseAfterClause() |
| 154 | if err != nil { |
| 155 | return nil, err |
| 156 | } |
| 157 | if after != nil { |
| 158 | statementEnd = after.End() |
| 159 | } |
| 160 | return &AlterTableAddIndex{ |
| 161 | AddPos: pos, |
| 162 | StatementEnd: statementEnd, |
| 163 | IfNotExists: ifNotExists, |
| 164 | Index: index, |
| 165 | After: after, |
| 166 | }, nil |
| 167 | } |
| 168 | |
| 169 | func (p *Parser) parseProjectionOrderBy(pos Pos) (*ProjectionOrderByClause, error) { |
| 170 | if err := p.expectKeyword(KeywordOrder); err != nil { |
no test coverage detected