(pos Pos)
| 1214 | } |
| 1215 | |
| 1216 | func (p *Parser) parseSampleClause(pos Pos) (*SampleClause, error) { |
| 1217 | if err := p.expectKeyword(KeywordSample); err != nil { |
| 1218 | return nil, err |
| 1219 | } |
| 1220 | ratio, err := p.parseRatioExpr(p.Pos()) |
| 1221 | if err != nil { |
| 1222 | return nil, err |
| 1223 | } |
| 1224 | |
| 1225 | var offset *RatioExpr |
| 1226 | if p.matchKeyword(KeywordOffset) { |
| 1227 | _ = p.lexer.consumeToken() |
| 1228 | offset, err = p.parseRatioExpr(p.Pos()) |
| 1229 | if err != nil { |
| 1230 | return nil, err |
| 1231 | } |
| 1232 | } |
| 1233 | |
| 1234 | return &SampleClause{ |
| 1235 | SamplePos: pos, |
| 1236 | Ratio: ratio, |
| 1237 | Offset: offset, |
| 1238 | }, nil |
| 1239 | } |
| 1240 | |
| 1241 | func (p *Parser) parseExplainStmt(pos Pos) (*ExplainStmt, error) { |
| 1242 | if err := p.expectKeyword(KeywordExplain); err != nil { |
no test coverage detected