Nova função: ARRAY_FLATTEN pode entrar em conflito com as UDFs de nome semelhante

Atenção

Essa mudança de comportamento está no pacote 2023_06.

Para saber o status atual do pacote, consulte Histórico do pacote.

Na versão atual do Snowflake, o Snowflake introduziu uma nova função interna chamada ARRAY_FLATTEN.

ARRAY_FLATTEN nivela um ARRAY de ARRAYs em um único ARRAY.

  • Se ARRAY estiver aninhada com mais de dois níveis de profundidade, apenas um único nível de aninhamento será removido.

  • Se a ARRAY de entrada for NULL ou contiver quaisquer elementos NULL, o resultado será NULL.

Se você tiver uma UDF chamado ARRAY_FLATTEN, essa mudança de comportamento terá o seguinte efeito:

Anteriormente:

Chamadas para ARRAY_FLATTEN são resolvidas para sua UDF.

Atualmente:

Chamadas para ARRAY_FLATTEN serão resolvidas para a nova função ARRAY_FLATTEN interna.

A função interna ARRAY_FLATTEN pode funcionar de maneira diferente da sua UDF.

Se a semântica documentada da nova função ARRAY_FLATTEN interna 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.array_flatten(...);
    
    Copy

Ref: 1239