Skip to content

Commit

Permalink
Snowflake: support IGNORE/RESPECT NULLS inside function argument list (
Browse files Browse the repository at this point in the history
  • Loading branch information
jmhain authored May 16, 2024
1 parent 5ed13b5 commit 5418446
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/dialect/snowflake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ impl Dialect for SnowflakeDialect {
true
}

// Snowflake doesn't document this but `FIRST_VALUE(arg, { IGNORE | RESPECT } NULLS)`
// works (i.e. inside the argument list instead of after).
fn supports_window_function_null_treatment_arg(&self) -> bool {
true
}

/// See [doc](https://docs.snowflake.com/en/sql-reference/sql/set#syntax)
fn supports_parenthesized_set_variables(&self) -> bool {
true
Expand Down
9 changes: 9 additions & 0 deletions tests/sqlparser_snowflake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1576,3 +1576,12 @@ fn test_select_wildcard_with_ilike_replace() {
"sql parser error: Expected end of statement, found: EXCLUDE"
);
}

#[test]
fn first_value_ignore_nulls() {
snowflake().verified_only_select(concat!(
"SELECT FIRST_VALUE(column2 IGNORE NULLS) ",
"OVER (PARTITION BY column1 ORDER BY column2) ",
"FROM some_table"
));
}

0 comments on commit 5418446

Please sign in to comment.