@@ -40,8 +40,9 @@ use sqlparser::parser::{Parser, ParserError, ParserOptions};
4040use sqlparser::tokenizer::Tokenizer;
4141use sqlparser::tokenizer::{Location, Span};
4242use test_utils::{
43- all_dialects, all_dialects_where, alter_table_op, assert_eq_vec, call, expr_from_projection,
44- join, number, only, table, table_alias, table_from_name, TestedDialects,
43+ all_dialects, all_dialects_where, all_dialects_with_options, alter_table_op, assert_eq_vec,
44+ call, expr_from_projection, join, number, only, table, table_alias, table_from_name,
45+ TestedDialects,
4546};
4647
4748#[macro_use]
@@ -16141,3 +16142,20 @@ fn test_select_exclude() {
1614116142 ParserError::ParserError("Expected: end of statement, found: EXCLUDE".to_string())
1614216143 );
1614316144}
16145+
16146+ #[test]
16147+ fn test_no_semicolon_required_between_statements() {
16148+ let sql = r#"
16149+ SELECT * FROM tbl1
16150+ SELECT * FROM tbl2
16151+ "#;
16152+
16153+ let dialects = all_dialects_with_options(ParserOptions {
16154+ trailing_commas: false,
16155+ unescape: true,
16156+ require_semicolon_stmt_delimiter: false,
16157+ });
16158+ let stmts = dialects.parse_sql_statements(sql).unwrap();
16159+ assert_eq!(stmts.len(), 2);
16160+ assert!(stmts.iter().all(|s| matches!(s, Statement::Query { .. })));
16161+ }
0 commit comments