

 Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="udf-data-types"></a>

Le funzioni definite dall'utente Python possono usare qualsiasi tipo di dati di Amazon Redshift standard per gli argomenti di input e il valore restituito della funzione. Oltre ai tipi di dati standard, le funzioni definite dall'utente supportano il tipo di dati *ANYELEMENT*, convertito automaticamente da Amazon Redshift in un tipo di dati standard in base agli argomenti specificati in fase di runtime. Le funzioni definite dall'utente scalari possono restituire un tipo di dati ANYELEMENT. Per ulteriori informazioni, consultare [Tipo di dati ANYELEMENT](#udf-anyelement-data-type).

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](c_Supported_data_types.md).

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<br />integer<br />bigint<br />short<br />Long | int | 
| decimal o numeric | decimal | 
| double<br />real | float | 
| booleano | bool | 
| char<br />varchar | Stringa | 
| timestamp | datetime | 

## Tipo di dati ANYELEMENT
<a name="udf-anyelement-data-type"></a>

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. 