

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# Python UDF データ型
<a name="udf-data-types"></a>

Python UDF の入力引数および戻り値には標準の Amazon Redshift データ型を使用できます。標準のデータ型に加えて、UDF ではデータ型 *ANYELEMENT* をサポートします。これは、Amazon Redshift が実行時に提供される引数に基づいて標準のデータ型に自動的に変換します。スカラー UDF は、ANYELEMENT のデータ型を返すことができます。詳細については、「[ANYELEMENT データ型](#udf-anyelement-data-type)」を参照してください。

実行中に、Amazon Redshift は、処理を行うために引数を Amazon Redshift データ型から Python データ型に変換します。次に、戻り値を Python データ型から対応する Amazon Redshift データ型に変換します。Amazon Redshift のデータ型の詳細については、「[データ型](c_Supported_data_types.md)」を参照してください。

次の表は Amazon Redshift データ型と Python データ型のマッピングを示しています。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/udf-data-types.html)

## ANYELEMENT データ型
<a name="udf-anyelement-data-type"></a>

ANYELEMENT は、*ポリモーフィックなデータ型*です。引数のデータ型として ANYELEMENT を使用して関数が宣言されている場合、その関数は、呼び出されたときに、標準の Amazon Redshift データ型をその引数の入力として受け入れることができます。ANYELEMENT 引数は、関数が呼び出されたときに、それに実際に渡されるデータ型に設定されます。

1 つの関数が複数の ANYELEMENT データ型を使用する場合、これらのデータ型のすべてが、関数が呼び出されたときに、同一の実際のデータ型に解決される必要があります。すべての ANYELEMENT 引数データ型が、ANYELEMENT に最初に渡される引数の実際のデータ型に設定されます。たとえば、`f_equal(anyelement, anyelement)` として宣言されている関数は、これら 2 つの入力値が同じデータ型である限り、両方の入力値をとります。

関数の戻り値が ANYELEMENT として宣言されている場合は、少なくとも 1 つの入力引数が ANYELEMENT である必要があります。戻り値の実際のデータ型は、ANYELEMENT 入力引数に指定されている実際のデータ型と同じになります。