A table name or a parenthesized subquery, followed by optional `[AS] alias`
(&mut self)
| 8390 | |
| 8391 | /// A table name or a parenthesized subquery, followed by optional `[AS] alias` |
| 8392 | fn parse_table_factor(&mut self) -> Result<TableFactor<Raw>, ParserError> { |
| 8393 | // Guard the nested table-factor recursion. `FROM ((((…` descends |
| 8394 | // parse_table_factor -> parse_table_and_joins -> parse_table_factor, |
| 8395 | // and the inner `parse_query` recursion guard doesn't stop it because |
| 8396 | // the derived-table `maybe_parse` below swallows its |
| 8397 | // `RecursionLimitError`. Without this, deeply nested parens overflow |
| 8398 | // the stack (and the try-both backtracking balloons memory). |
| 8399 | self.checked_recur_mut(|parser| parser.parse_table_factor_inner()) |
| 8400 | } |
| 8401 | |
| 8402 | fn parse_table_factor_inner(&mut self) -> Result<TableFactor<Raw>, ParserError> { |
| 8403 | if self.parse_keyword(LATERAL) { |
no test coverage detected