From 2def40ea6ae489ccd6e5dd2729e4ee7f41e7e757 Mon Sep 17 00:00:00 2001 From: Mostafa Abdelraouf Date: Sat, 31 Aug 2024 10:52:33 -0500 Subject: [PATCH] Add test case for issue 776 (#786) I am adding a tiny test that uses the SQL statement that was reported to break an older version of SQL parser library #776 --- src/query_router.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/query_router.rs b/src/query_router.rs index da67e96..bc6ed2c 100644 --- a/src/query_router.rs +++ b/src/query_router.rs @@ -1399,6 +1399,19 @@ mod test { assert!(!qr.query_parser_enabled()); } + #[test] + fn test_query_parser() { + QueryRouter::setup(); + let mut qr = QueryRouter::new(); + qr.pool_settings.query_parser_read_write_splitting = true; + + let query = simple_query("SELECT req_tab_0.* FROM validation req_tab_0 WHERE array['http://www.w3.org/ns/shacl#ValidationResult'] && req_tab_0.type::text[] AND ( ( (req_tab_0.focusnode = 'DataSource_Credilogic_DataSourceAddress_144959227') ) )"); + assert!(qr.infer(&qr.parse(&query).unwrap()).is_ok()); + + let query = simple_query("WITH EmployeeSalaries AS (SELECT Department, Salary FROM Employees) SELECT Department, AVG(Salary) AS AverageSalary FROM EmployeeSalaries GROUP BY Department;"); + assert!(qr.infer(&qr.parse(&query).unwrap()).is_ok()); + } + #[test] fn test_update_from_pool_settings() { QueryRouter::setup();