Problemi noti nell'interfaccia PostgreSQL per Cloud Spanner

Questa pagina evidenzia le differenze di comportamento tra le funzionalità PostgreSQL supportate in Cloud Spanner e i loro equivalenti open source PostgreSQL.

Flusso in virgola mobile 8

In alcuni casi, PostgreSQL open source restituisce un errore come ERROR: value out of range: underflow se il risultato della matematica in virgola mobile verrebbe troncato a 0. Numeri troppo vicini a zero che non sono rappresentabili come distinti da zero causano un errore di flusso.

In questi casi, l'interfaccia PostgreSQL non restituisce un errore, ma restituisce il valore 0 troncato.

Funzione concat()

Nell'interfaccia di PostgreSQL, la funzione concat() restituisce NULL se qualsiasi argomento è NULL. Tuttavia, in PostgreSQL open source, questa funzione ignora NULL e restituisce una concatenazione di tutti gli argomenti non NULL o di una stringa vuota se tutti gli argomenti sono NULL. Ad esempio:

-- Returns `abcdef` in open-source PostgreSQL.
-- Returns NULL in the PostgreSQL interface.
select concat('abc'::text, NULL::text, 'def'::text);

L'interfaccia di PostgreSQL e PostgreSQL open source hanno un comportamento identico per l'operatore ||.

Valori letterali data/ora

Evita di utilizzare i seguenti valori letterali speciali per date e timestamptz perché l'interfaccia PostgreSQL restituisce risultati errati: now, yesterday, today, tomorrow, epoch, -infinity e infinity.

Ad esempio, la seguente query restituisce risultati errati:

SELECT 'today'::timestamptz;