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;