This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 329a94cc Fix panic on incomplete REGEXP/MATCH expressions in SQLite
dialect (#2197)
329a94cc is described below
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]