メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

UDF のデータ型

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

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

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

Amazon Redshift データ型 Python データ型

smallint

integer

bigint

short

long

int

decimal または numeric

decimal

double

real

float

boolean

ブール

char

varchar

文字列

timestamp

datetime

ANYELEMENT データ型

ANYELEMENT は多相型データ型であり、引数のデータ型として ANYELEMENT を使用して関数が宣言されている場合、その関数は、呼び出されたときに、標準の Amazon Redshift データ型をその引数の入力として受け入れることができます。ANYELEMENT 引数は、関数が呼び出されたときに、それに実際に渡されるデータ型に設定されます。

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

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

このページの内容: