@@ -4613,124 +4613,3 @@ fn test_drop_constraints() {
4613
4613
snowflake ( ) . verified_stmt ( "ALTER TABLE tbl DROP FOREIGN KEY k1 RESTRICT" ) ;
4614
4614
snowflake ( ) . verified_stmt ( "ALTER TABLE tbl DROP CONSTRAINT c1 CASCADE" ) ;
4615
4615
}
4616
-
4617
- #[ test]
4618
- fn test_semantic_view ( ) {
4619
- let valid_sqls = [
4620
- ( "SELECT * FROM SEMANTIC_VIEW(model)" , None ) ,
4621
- (
4622
- "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1, dim2)" ,
4623
- None ,
4624
- ) ,
4625
- ( "SELECT * FROM SEMANTIC_VIEW(a.b METRICS c.d, c.e)" , None ) ,
4626
- (
4627
- "SELECT * FROM SEMANTIC_VIEW(model FACTS fact1, fact2)" ,
4628
- None ,
4629
- ) ,
4630
- (
4631
- "SELECT * FROM SEMANTIC_VIEW(model FACTS DATE_PART('year', col))" ,
4632
- None ,
4633
- ) ,
4634
- (
4635
- "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 METRICS met1)" ,
4636
- None ,
4637
- ) ,
4638
- (
4639
- "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 WHERE x > 0)" ,
4640
- None ,
4641
- ) ,
4642
- (
4643
- "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1) AS sv" ,
4644
- None ,
4645
- ) ,
4646
- (
4647
- "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS DATE_PART('year', col))" ,
4648
- None ,
4649
- ) ,
4650
- (
4651
- "SELECT * FROM SEMANTIC_VIEW(model METRICS orders.col, orders.col2)" ,
4652
- None ,
4653
- ) ,
4654
- // We can parse in any order but will always produce a result in a fixed order.
4655
- (
4656
- "SELECT * FROM SEMANTIC_VIEW(model WHERE x > 0 DIMENSIONS dim1)" ,
4657
- Some ( "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 WHERE x > 0)" ) ,
4658
- ) ,
4659
- (
4660
- "SELECT * FROM SEMANTIC_VIEW(model METRICS met1 DIMENSIONS dim1)" ,
4661
- Some ( "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 METRICS met1)" ) ,
4662
- ) ,
4663
- (
4664
- "SELECT * FROM SEMANTIC_VIEW(model FACTS fact1 DIMENSIONS dim1)" ,
4665
- Some ( "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 FACTS fact1)" ) ,
4666
- ) ,
4667
- ] ;
4668
-
4669
- for ( input_sql, expected_sql) in valid_sqls {
4670
- if let Some ( expected) = expected_sql {
4671
- // Test that non-canonical order gets normalized
4672
- let parsed = snowflake ( ) . parse_sql_statements ( input_sql) . unwrap ( ) ;
4673
- let formatted = parsed[ 0 ] . to_string ( ) ;
4674
- assert_eq ! ( formatted, expected) ;
4675
- } else {
4676
- snowflake ( ) . verified_stmt ( input_sql) ;
4677
- }
4678
- }
4679
-
4680
- let invalid_sqls = [
4681
- "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 INVALID inv1)" ,
4682
- "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 DIMENSIONS dim2)" ,
4683
- "SELECT * FROM SEMANTIC_VIEW(model METRICS SUM(met1.avg))" ,
4684
- ] ;
4685
-
4686
- for sql in invalid_sqls {
4687
- let result = snowflake ( ) . parse_sql_statements ( sql) ;
4688
- assert ! ( result. is_err( ) , "Expected error for invalid SQL: {}" , sql) ;
4689
- }
4690
-
4691
- let ast_sql = r#"SELECT * FROM SEMANTIC_VIEW(
4692
- my_model
4693
- DIMENSIONS DATE_PART('year', date_col), region_name
4694
- METRICS orders.revenue, orders.count
4695
- WHERE active = true
4696
- ) AS model_alias"# ;
4697
-
4698
- let stmt = snowflake ( ) . parse_sql_statements ( ast_sql) . unwrap ( ) ;
4699
- match & stmt[ 0 ] {
4700
- Statement :: Query ( q) => {
4701
- if let SetExpr :: Select ( select) = q. body . as_ref ( ) {
4702
- if let Some ( TableWithJoins { relation, .. } ) = select. from . first ( ) {
4703
- match relation {
4704
- TableFactor :: SemanticView {
4705
- name,
4706
- dimensions,
4707
- metrics,
4708
- facts,
4709
- where_clause,
4710
- alias,
4711
- } => {
4712
- assert_eq ! ( name. to_string( ) , "my_model" ) ;
4713
- assert_eq ! ( dimensions. len( ) , 2 ) ;
4714
- assert_eq ! ( dimensions[ 0 ] . to_string( ) , "DATE_PART('year', date_col)" ) ;
4715
- assert_eq ! ( dimensions[ 1 ] . to_string( ) , "region_name" ) ;
4716
- assert_eq ! ( metrics. len( ) , 2 ) ;
4717
- assert_eq ! ( metrics[ 0 ] . to_string( ) , "orders.revenue" ) ;
4718
- assert_eq ! ( metrics[ 1 ] . to_string( ) , "orders.count" ) ;
4719
- assert ! ( facts. is_empty( ) ) ;
4720
- assert ! ( where_clause. is_some( ) ) ;
4721
- assert_eq ! ( where_clause. as_ref( ) . unwrap( ) . to_string( ) , "active = true" ) ;
4722
- assert ! ( alias. is_some( ) ) ;
4723
- assert_eq ! ( alias. as_ref( ) . unwrap( ) . name. value, "model_alias" ) ;
4724
- }
4725
- _ => panic ! ( "Expected SemanticView table factor" ) ,
4726
- }
4727
- } else {
4728
- panic ! ( "Expected table in FROM clause" ) ;
4729
- }
4730
- } else {
4731
- panic ! ( "Expected SELECT statement" ) ;
4732
- }
4733
- }
4734
- _ => panic ! ( "Expected Query statement" ) ,
4735
- }
4736
- }
0 commit comments