Neue Funktion: ARRAY_FLATTEN kann zu Konflikten mit ähnlich benannten UDFs führen

Achtung

Diese Verhaltensänderung ist in Bundle 2023_06 enthalten.

Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.

Mit dem aktuellen Snowflake-Release führt Snowflake eine neue integrierte Funktion namens ARRAY_FLATTEN ein.

ARRAY_FLATTEN vereinfacht ein ARRAY von ARRAYs zu einem einzigen ARRAY.

  • Wenn ARRAY mehr als zwei Ebenen tief verschachtelt ist, wird nur eine Ebene der Verschachtelung entfernt.

  • Wenn das Eingabe-ARRAY NULL ist oder irgendwelche NULL-Elemente enthält, dann ist das Ergebnis NULL.

Wenn Sie eine UDF mit dem Namen ARRAY_FLATTEN haben, hat diese Verhaltensänderung folgende Auswirkungen:

Bisher:

Das Aufrufen von ARRAY_FLATTEN führt zur Ihrer UDF.

Jetzt:

Das Aufrufen von ARRAY_FLATTEN wird zu der neuen integrierten Funktion ARRAY_FLATTEN führen.

Die integrierte Funktion ARRAY_FLATTEN funktioniert möglicherweise anders als Ihre UDF.

Wenn die dokumentierte Semantik der neuen integrierte ARRAY_FLATTEN-Funktion nicht mit der Semantik Ihrer UDF übereinstimmt, haben Sie folgende Möglichkeiten:

  • Benennen Sie Ihre UDF um (mit ALTER FUNCTION … RENAME TO …), und ersetzen Sie alle Verweise auf den ursprünglichen UDF-Namen durch den neuen Namen.

  • Verwenden Sie überall vollqualifizierte Referenzen auf Ihre UDF, indem Sie die Namen der Datenbank und des Schemas angeben, die die UDF enthalten. Beispiel:

    SELECT my_database.my_schema.array_flatten(...);
    
    Copy

Ref.: 1239