Tipi di dati delle funzioni definite dall'utente Python - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tipi di dati delle funzioni definite dall'utente Python

Python UDFs può utilizzare qualsiasi tipo di dati Amazon Redshift standard per gli argomenti di input e il valore restituito dalla funzione. Oltre ai tipi di dati standard, UDFs supporta il tipo di dati ANYELEMENT, che Amazon Redshift converte automaticamente in un tipo di dati standard in base agli argomenti forniti in fase di esecuzione. Scalar UDFs può restituire un tipo di dati ANYELEMENT. Per ulteriori informazioni, consulta Tipo di dati ANYELEMENT.

Durante l'esecuzione, Amazon Redshift converte gli argomenti da tipi di dati Amazon Redshift a tipi di dati Python per l'elaborazione. Quindi converte il valore restituito dal tipo di dati Python al tipo di dati Amazon Redshift corrispondente. Per ulteriori informazioni sui tipi di dati di Amazon Redshift, consultare Tipi di dati.

La tabella seguente indica la mappatura dei tipi di dati Amazon Redshift ai tipi di dati Python.

Tipo di dati di Amazon Redshift Tipo di dati Python

smallint

integer

bigint

short

Long

int

decimal o numeric

decimal

double

real

float

booleano

bool

char

varchar

Stringa

timestamp

datetime

Tipo di dati ANYELEMENT

ANYELEMENT è un tipo di dati polimorfico. Ciò significa che se una funzione viene dichiarata usando ANYELEMENT come tipo di dati di un argomento, la funzione può accettare qualsiasi tipo di dati Amazon Redshift standard come input per l'argomento quando viene chiamata. L'argomento ANYELEMENT viene impostato sul tipo di dati effettivamente passato all'argomento quando viene chiamata la funzione.

Se una funzione usa più tipi di dati ANYELEMENT, questi devono tutti essere risolti nello stesso tipo di dati effettivo quando viene chiamata la funzione. Tutti i tipi di dati dell'argomento ANYELEMENT sono impostati sull'effettivo tipo di dati del primo argomento passato a ANYELEMENT. Ad esempio, una funzione dichiarata come f_equal(anyelement, anyelement) accetta uno qualsiasi tra due valori di input, purché abbiano lo stesso tipo di dati.

Se il valore restituito di una funzione viene dichiarato come ANYELEMENT, almeno un argomento di input deve essere ANYELEMENT. Il tipo di dati effettivo per il valore restituito sarà lo stesso del tipo di dati effettivo specificato per l'argomento di input ANYELEMENT.