

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà 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à.

# ST\$1 AddPoint
<a name="ST_AddPoint-function"></a>

ST\$1 AddPoint restituisce una geometria di stringhe di linee che è la stessa della geometria di input con un punto aggiunto. Se viene fornito un indice, il punto viene aggiunto alla posizione dell'indice. Se l'indice è -1 o non viene fornito, il punto viene aggiunto alla linestring. 

L'indice è a base zero. L'identificatore del sistema di riferimento spaziale (SRID) del risultato è lo stesso della geometria di input. 

La dimensione della geometria restituita è la stessa del valore *geom1*. Se *geom1* e *geom2* hanno dimensioni diverse, *geom2* è proiettato sulla dimensione di *geom1*.

## Sintassi
<a name="ST_AddPoint-function-syntax"></a>

```
ST_AddPoint(geom1, geom2)
```

```
ST_AddPoint(geom1, geom2, index)
```

## Arguments (Argomenti)
<a name="ST_AddPoint-function-arguments"></a>

 *geom1*   
Un valore di tipo `GEOMETRY` o un'espressione che restituisce un valore di tipo `GEOMETRY`. Questo sottotipo deve essere `LINESTRING`. 

 *geom2*   
Un valore di tipo `GEOMETRY` o un'espressione che restituisce un valore di tipo `GEOMETRY`. Questo sottotipo deve essere `POINT`. Il punto può essere il punto vuoto.

 *indice*   
Valore del tipo di dati `INTEGER` che rappresenta la posizione di un indice a base zero. 

## Tipo restituito
<a name="ST_AddPoint-function-return"></a>

`GEOMETRY` 

Se *geom1*, *geom2* o *index* sono nulli, allora viene restituito il valore nullo. 

Se *geom2* è il punto vuoto, quindi viene restituita una copia di *geom1*. 

Se *geom1* non è un `LINESTRING`, allora viene restituito un errore. 

Se *geom2* non è un `POINT`, allora viene restituito un errore. 

Se *index* è fuori intervallo, viene restituito un errore. I valori validi per la posizione dell'indice sono -1 o un valore compreso tra 0 e `ST_NumPoints(geom1)`. 

## Esempi
<a name="ST_AddPoint-function-examples"></a>

Il seguente codice SQL aggiunge un punto a una linestring per renderla una linestring chiusa. 

```
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326))
SELECT ST_AsEWKT(ST_AddPoint(g, ST_StartPoint(g))) FROM tmp;
```

```
 st_asewkt
------------------------------------------------
 SRID=4326;LINESTRING(0 0,10 0,10 10,5 5,0 5,0 0)
```

Il seguente codice SQL aggiunge un punto a una posizione specifica in una linestring. 

```
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326))
SELECT ST_AsEWKT(ST_AddPoint(g, ST_SetSRID(ST_Point(5, 10), 4326), 3)) FROM tmp;
```

```
 st_asewkt
------------------------------------------------
 SRID=4326;LINESTRING(0 0,10 0,10 10,5 10,5 5,0 5)
```