diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 3925eaeb..63ae610d 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -13847,6 +13847,7 @@ impl<'a> Parser<'a> { Ok(XmlPassingClause { arguments }) } + /// Parse a [TableFactor::SemanticView] fn parse_semantic_view_table_factor(&mut self) -> Result { let name = self.parse_object_name(true)?; diff --git a/tests/sqlparser_snowflake.rs b/tests/sqlparser_snowflake.rs index 827963ea..1e79c4f7 100644 --- a/tests/sqlparser_snowflake.rs +++ b/tests/sqlparser_snowflake.rs @@ -4622,12 +4622,13 @@ fn test_semantic_view_all_variants_should_pass() { "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1, dim2)", None, ), + ("SELECT * FROM SEMANTIC_VIEW(a.b METRICS c.d, c.e)", None), ( - "SELECT * FROM SEMANTIC_VIEW(model METRICS met1, met2)", + "SELECT * FROM SEMANTIC_VIEW(model FACTS fact1, fact2)", None, ), ( - "SELECT * FROM SEMANTIC_VIEW(model FACTS fact1, fact2)", + "SELECT * FROM SEMANTIC_VIEW(model FACTS DATE_PART('year', col))", None, ), ( @@ -4650,7 +4651,7 @@ fn test_semantic_view_all_variants_should_pass() { "SELECT * FROM SEMANTIC_VIEW(model METRICS orders.col, orders.col2)", None, ), - // We can parse in any order bu will always produce a result in a fixed order. + // We can parse in any order but will always produce a result in a fixed order. ( "SELECT * FROM SEMANTIC_VIEW(model WHERE x > 0 DIMENSIONS dim1)", Some("SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 WHERE x > 0)"),