新しい関数: ARRAY_SORT、 ARRAY_MIN、および ARRAY_MAX が類似の名前付き UDFs と競合する可能性

注意

この動作変更は2023_05バンドルにあります。

バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。

現在のリリースにより、Snowflakeは、以下の名前と署名を持つ新しい組み込み関数を導入します。

  • ARRAY_SORTは、入力 ARRAY の要素を並べ替えて返します。この関数の署名は以下のとおりです。

    • ARRAY_SORT(input_array)

      NULLs が配列の末尾に来るように、要素を昇順に並べ替えます。

    • ARRAY_SORT(input_array, sort_ascending)

      sort_ascending が TRUE の場合は昇順に、 sort_ascending が FALSE の場合は降順に要素を並べ替えます。

      sort_ascending が TRUE の場合は NULLs が最後に、 sort_ascending が FALSE の場合は最初に並べ替えられます。

    • ARRAY_SORT(input_array, sort_ascending, nulls_first)

      sort_ascending が TRUE の場合は昇順に、 sort_ascending が FALSE の場合は降順に要素を並べ替えます。

      nulls_first が TRUE の場合は NULLs が最初に、 nulls_first が FALSE の場合は最後に並べ替えられます。

    この関数が、2つの異なる数値型やタイムスタンプ型(あるいはこれらの型を含むオブジェクト)の値を比較する際に、安定した並べ替えを提供することは保証されていません。

  • ARRAY_MIN は、入力配列の最小定義要素を返します。

  • ARRAY_MAX は、入力配列の最大定義要素を返します。

ARRAY_SORT、 ARRAY_MIN、または ARRAY_MAX という名前の UDFs が同じ署名を持つ場合、この動作変更は以下のような影響を及ぼします。

以前:

ARRAY_SORT、 ARRAY_MIN、または ARRAY_MAX への呼び出しは UDFs に解決されます。

現在:

ARRAY_SORT、 ARRAY_MIN、または ARRAY_MAX への呼び出しは、新しい組み込み関数に解決されます。

組み込み関数は、使用する UDFs と異なる動作をする場合があります。

新しい組み込み関数の文書化されたセマンティクスが、使用する UDFs のセマンティクスと一致しない場合、次のいずれかを実行できます。

  • UDFs の名前を変更し(ALTER FUNCTION ... RENAME TO ... を使用)、元の UDF の名前に対する参照をすべて新しい名前に置き換えます。

  • UDFs を含むデータベースとスキーマの名前を指定して、 UDFs へのすべての参照を 完全に修飾 します。例:

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

参照: 1135