This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch gh-readonly-queue/main/pr-2197-272c25ed83b97cce5a217f601e8b00e9117ce51f in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
commit 329a94cc0119face45ac6d44f115e33c5abc33c7 Author: Luca Cappelletti <[email protected]> AuthorDate: Sat Feb 7 07:34:10 2026 +0100 Fix panic on incomplete REGEXP/MATCH expressions in SQLite dialect (#2197) --- src/dialect/sqlite.rs | 5 ++++- tests/sqlparser_sqlite.rs | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/dialect/sqlite.rs b/src/dialect/sqlite.rs index 765b3874..b44a1c5b 100644 --- a/src/dialect/sqlite.rs +++ b/src/dialect/sqlite.rs @@ -89,7 +89,10 @@ impl Dialect for SQLiteDialect { ] { if parser.parse_keyword(keyword) { let left = Box::new(expr.clone()); - let right = Box::new(parser.parse_expr().unwrap()); + let right = Box::new(match parser.parse_expr() { + Ok(expr) => expr, + Err(e) => return Some(Err(e)), + }); return Some(Ok(Expr::BinaryOp { left, op, right })); } } diff --git a/tests/sqlparser_sqlite.rs b/tests/sqlparser_sqlite.rs index da311ac0..ffe94ab8 100644 --- a/tests/sqlparser_sqlite.rs +++ b/tests/sqlparser_sqlite.rs @@ -602,6 +602,10 @@ fn test_regexp_operator() { } ); sqlite().verified_only_select(r#"SELECT count(*) FROM messages WHERE msg_text REGEXP '\d+'"#); + + // Should return an error, not panic + assert!(sqlite().parse_sql_statements("SELECT 1 REGEXP").is_err()); + assert!(sqlite().parse_sql_statements("SELECT 1 MATCH").is_err()); } #[test] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
