(ident *Ident)
| 265 | } |
| 266 | |
| 267 | func (p *Parser) parseExtractFrom(ident *Ident) (*IntervalFrom, error) { |
| 268 | fromPos := p.Pos() |
| 269 | if err := p.expectKeyword(KeywordFrom); err != nil { |
| 270 | return nil, err |
| 271 | } |
| 272 | |
| 273 | expr, err := p.parseExpr(p.Pos()) |
| 274 | if err != nil { |
| 275 | return nil, err |
| 276 | } |
| 277 | return &IntervalFrom{ |
| 278 | Interval: ident, |
| 279 | FromPos: fromPos, |
| 280 | FromExpr: expr, |
| 281 | }, nil |
| 282 | } |
| 283 | |
| 284 | func (p *Parser) parseColumnExtractExpr(pos Pos) (*ExtractExpr, error) { |
| 285 | if err := p.expectKeyword(KeywordExtract); err != nil { |
no test coverage detected