MCPcopy Create free account
hub / github.com/apache/datafusion / parse_statements

Method parse_statements

datafusion/sql/src/parser.rs:491–512  ·  view source on GitHub ↗

Parse a sql string into one or [`Statement`]s

(&mut self)

Source from the content-addressed store, hash-verified

489
490 /// Parse a sql string into one or [`Statement`]s
491 pub fn parse_statements(&mut self) -> Result<VecDeque<Statement>, DataFusionError> {
492 let mut stmts = VecDeque::new();
493 let mut expecting_statement_delimiter = false;
494 loop {
495 // ignore empty statements (between successive statement delimiters)
496 while self.parser.consume_token(&Token::SemiColon) {
497 expecting_statement_delimiter = false;
498 }
499
500 if self.parser.peek_token() == Token::EOF {
501 break;
502 }
503 if expecting_statement_delimiter {
504 return self.expected("end of statement", &self.parser.peek_token());
505 }
506
507 let statement = self.parse_statement()?;
508 stmts.push_back(statement);
509 expecting_statement_delimiter = true;
510 }
511 Ok(stmts)
512 }
513
514 /// Report an unexpected token
515 fn expected<T>(

Callers 6

parse_sqlMethod · 0.80
test_recursion_limitFunction · 0.80
test_custom_tokensFunction · 0.80
sql_to_statementMethod · 0.80
parse_or_noneFunction · 0.80

Calls 3

newFunction · 0.85
expectedMethod · 0.80
parse_statementMethod · 0.45

Tested by 2

test_recursion_limitFunction · 0.64
test_custom_tokensFunction · 0.64