Novas funções SQL: GREATEST_IGNORE_NULLS e LEAST_IGNORE_NULLS podem entrar em conflito com UDFs com nomes semelhantes¶
Atenção
Essa mudança de comportamento está no pacote 2024_03.
Para saber o status atual do pacote, consulte Histórico do pacote.
A Snowflake está introduzindo duas novas funções internas:
GREATEST_IGNORE_NULLS: retorna o maior valor diferente de NULL de uma lista de expressões. Se todos os valores dos argumentos forem NULLs, o resultado será NULL.
GREATEST_IGNORE_NULLS oferece suporte a argumentos de todos os tipos de dados, incluindo VARIANT.
LEAST_IGNORE_NULLS: retorna o menor valor diferente de NULL de uma lista de expressões. Se todos os valores dos argumentos forem NULLs, o resultado será NULL.
LEAST_IGNORE_NULLS oferece suporte a argumentos de todos os tipos de dados, incluindo VARIANT.
Se você tiver uma função definida pelo usuário (UDF) chamada LEAST_IGNORE_NULLS ou GREATEST_IGNORE_NULLS, as chamadas para sua função terão o seguinte efeito:
- Antes da mudança:
Uma chamada para sua UDF chamada GREATEST_IGNORE_NULLS ou LEAST_IGNORE_NULLS é resolvida para sua UDF.
- Após a mudança:
Uma chamada para sua UDF chamada GREATEST_IGNORE_NULLS ou LEAST_IGNORE_NULLS é resolvida para a nova função interna GREATEST_IGNORE_NULLS ou LEAST_IGNORE_NULLS. A função interna GREATEST_IGNORE_NULLS ou LEAST_IGNORE_NULLS pode funcionar de maneira diferente da sua UDF.
Se a semântica documentada da nova função interna GREATEST_IGNORE_NULLS ou LEAST_IGNORE_NULLS não corresponder à semântica de sua UDF, você poderá:
Renomear sua UDF (usando ALTER FUNCTION … RENAME TO …) e substituir todas as referências ao nome da UDF original pelo novo nome.
Qualificar totalmente todas as referências à sua UDF especificando os nomes do banco de dados e do esquema que contém a UDF. Por exemplo:
SELECT my_database.my_schema.greatest_ignore_nulls(...); SELECT my_database.my_schema.least_ignore_nulls(...);
Ref: 1354