Parses a SQL item name (e.g. `"db"."schema"."table"` or `my_view`).
(sql: &str)
| 192 | |
| 193 | /// Parses a SQL item name (e.g. `"db"."schema"."table"` or `my_view`). |
| 194 | pub fn parse_item_name(sql: &str) -> Result<UnresolvedItemName, ParserError> { |
| 195 | let tokens = lexer::lex(sql)?; |
| 196 | let mut parser = Parser::new(sql, tokens); |
| 197 | let name = parser.parse_item_name()?; |
| 198 | if parser.next_token().is_some() { |
| 199 | parser_err!( |
| 200 | parser, |
| 201 | parser.peek_prev_pos(), |
| 202 | "extra token after item name" |
| 203 | ) |
| 204 | } else { |
| 205 | Ok(name) |
| 206 | } |
| 207 | } |
| 208 | |
| 209 | /// Parses a string containing a comma-separated list of identifiers and |
| 210 | /// returns their underlying string values. |
no test coverage detected