diff --git a/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlparser_test.rs b/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlparser_test.rs index 72b0940..6da45aa 100644 --- a/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlparser_test.rs +++ b/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlparser_test.rs @@ -639,4 +639,11 @@ mod tests { ).unwrap(); assert!(incoming.matches_sql_pattern(&template)); } + + #[test] + fn test_order_by_is_rejected() { + assert!(parse_sql_query( + "SELECT AVG(value) FROM cpu_usage WHERE time BETWEEN DATEADD(s, -10, NOW()) AND NOW() GROUP BY L1, L2 ORDER BY L1" + ).is_none()); + } } diff --git a/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlpattern_parser.rs b/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlpattern_parser.rs index 3c833a0..5a952e9 100644 --- a/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlpattern_parser.rs +++ b/asap-common/dependencies/rs/sql_utilities/src/ast_matching/sqlpattern_parser.rs @@ -36,6 +36,11 @@ impl SQLPatternParser { } fn parse_query_node(&self, query: &Query) -> Option { + if query.order_by.is_some() { + println!("ORDER BY is not supported"); + return None; + } + // Convert CTE to subquery if present let query = self.cte_to_subquery(query);