diff --git a/src/dialect/snowflake.rs b/src/dialect/snowflake.rs index 0bedb12a5..d21f88bdc 100644 --- a/src/dialect/snowflake.rs +++ b/src/dialect/snowflake.rs @@ -153,6 +153,11 @@ impl Dialect for SnowflakeDialect { true } + /// See + fn supports_order_by_all(&self) -> bool { + true + } + // Snowflake supports double-dot notation when the schema name is not specified // In this case the default PUBLIC schema is used // diff --git a/tests/sqlparser_snowflake.rs b/tests/sqlparser_snowflake.rs index 059560dcc..ed7f81ece 100644 --- a/tests/sqlparser_snowflake.rs +++ b/tests/sqlparser_snowflake.rs @@ -44,6 +44,19 @@ fn test_snowflake_create_table() { } } +#[test] +fn parse_order_by_all() { + let query = snowflake() + .verified_query("SELECT value + 1 AS computed FROM source ORDER BY ALL DESC NULLS FIRST"); + assert_eq!( + query.order_by.expect("ORDER BY expected").kind, + OrderByKind::All(OrderByOptions { + sort: Some(OrderBySort::Desc), + nulls_first: Some(true), + }) + ); +} + #[test] fn parse_sf_create_secure_view_and_materialized_view() { for sql in [