Parses a SQL expression, reporting failures as a telemetry event if possible.
(
&self,
sql: &'a str,
)
| 630 | /// Parses a SQL expression, reporting failures as a telemetry event if |
| 631 | /// possible. |
| 632 | pub fn parse<'a>( |
| 633 | &self, |
| 634 | sql: &'a str, |
| 635 | ) -> Result<Result<Vec<StatementParseResult<'a>>, ParserStatementError>, String> { |
| 636 | match mz_sql::parse::parse_with_limit(sql) { |
| 637 | Ok(Err(e)) => { |
| 638 | self.track_statement_parse_failure(&e); |
| 639 | Ok(Err(e)) |
| 640 | } |
| 641 | r => r, |
| 642 | } |
| 643 | } |
| 644 | |
| 645 | fn track_statement_parse_failure(&self, parse_error: &ParserStatementError) { |
| 646 | let session = self.session.as_ref().expect("session invariant violated"); |