Neue Funktionen: ARRAY_SORT, ARRAY_MIN und ARRAY_MAX können mit ähnlich benannten UDFs kollidieren¶
Achtung
Diese Verhaltensänderung ist in Bundle 2023_05 enthalten.
Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.
Mit dem aktuellen Release führt Snowflake neue integrierte Funktionen mit den folgenden Namen und Signaturen ein:
- ARRAY_SORT gibt die Elemente des Eingabe-ARRAY in sortierter Reihenfolge zurück. Diese Funktion hat die folgenden Signaturen: - ARRAY_SORT(input_array)- Sortiert die Elemente in aufsteigender Reihenfolge, wobei sich NULL-Werte am Ende des Arrays befinden. 
- ARRAY_SORT(input_array, sort_ascending)- Sortiert die Elemente in aufsteigender Reihenfolge, wenn - sort_ascendinggleich TRUE ist, oder in absteigender Reihenfolge, wenn- sort_ascendinggleich FALSE ist.- NULL-Werte werden am Ende einsortiert, wenn - sort_ascendinggleich TRUE ist, oder am Anfang, wenn- sort_ascendinggleich FALSE ist.
- ARRAY_SORT(input_array, sort_ascending, nulls_first)- Sortiert die Elemente in aufsteigender Reihenfolge, wenn - sort_ascendinggleich TRUE ist, oder in absteigender Reihenfolge, wenn- sort_ascendinggleich FALSE ist.- NULL-Werte werden am Anfang einsortiert, wenn - nulls_firstgleich TRUE ist, oder am Ende, wenn- nulls_firstgleich FALSE ist.
 - Es ist nicht garantiert, dass diese Funktion eine stabile Sortierung liefert, wenn Sie Werte zweier unterschiedlicher numerischer Typen oder Zeitstempeltypen (oder Objekte, die diese Typen enthalten) vergleichen. 
- ARRAY_MIN gibt das minimal definierte Element im Eingabe-Array zurück 
- ARRAY_MAX gibt das maximal definierte Element im Eingabe-Array zurück 
Wenn Sie UDFs mit den Namen ARRAY_SORT, ARRAY_MIN oder ARRAY_MAX mit denselben Signaturen haben, hat diese Verhaltensänderung die folgende Auswirkung:
- Bisher:
- Das Aufrufen von ARRAY_SORT, ARRAY_MIN oder ARRAY_MAX führt zu Ihren zugehörigen UDFs. 
- Jetzt:
- Das Aufrufen von ARRAY_SORT, ARRAY_MIN oder ARRAY_MAX führt zu den neuen integrierten Funktionen. - Die integrierten Funktionen funktionieren möglicherweise anders als Ihre UDFs. 
Wenn die dokumentierte Semantik der neuen integrierten Funktionen nicht mit der Semantik Ihrer UDFs übereinstimmt, haben Sie zwei Möglichkeiten:
- Benennen Sie Ihr UDFs um (mit ALTER FUNCTION … RENAME TO …), und ersetzen Sie alle Referenzen auf den ursprünglichen UDF-Namen durch den neuen Namen. 
- Verwenden Sie überall vollqualifizierte Referenzen auf Ihre UDFs, indem Sie die Namen der Datenbank und des Schemas angeben, die die UDFs enthalten. Beispiel: - SELECT my_database.my_schema.array_sort(...); 
Ref.: 1135