Bekannte Probleme in der PostgreSQL-Oberfläche für Cloud Spanner

Auf dieser Seite werden Unterschiede im Verhalten zwischen den in Cloud Spanner unterstützten PostgreSQL-Funktionen und ihren Open-Source-PostgreSQL-Entsprechungen beschrieben.

Float8

In einigen Fällen gibt PostgreSQL als Open Source einen Fehler wie ERROR: value out of range: underflow zurück, wenn das Ergebnis der Gleitkommaberechnung auf 0 gekürzt werden soll. Zahlen zu nah bei null, die nicht als null erkennbar sind und einen Unterflussfehler verursachen,

Die PostgreSQL-Schnittstelle gibt in diesen Fällen keinen Fehler zurück, sondern gibt den gekürzten Wert 0 zurück.

concat()-Funktion

In der PostgreSQL-Oberfläche gibt die Funktion concat() NULL zurück, wenn ein Argument NULL ist. In Open-Source-PostgreSQL wird diese Funktion jedoch von NULL ignoriert und eine Verkettung aller Nicht-NULL-Argumente zurückgegeben. Wenn alle Argumente NULL sind, wird eine leere Verkettung zurückgegeben. Beispiel:

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

Die PostgreSQL-Oberfläche und Open-Source-PostgreSQL haben das gleiche Verhalten für den Operator ||.

Literale vom Typ „Datum/Uhrzeit“

Verwenden Sie nicht die folgenden Literale für date und timestamptz, da in der PostgreSQL-Oberfläche falsche Ergebnisse zurückgegeben werden: now, yesterday, today, tomorrow, epoch, -infinity und infinity.

Beispiel: Die folgende Abfrage gibt falsche Ergebnisse zurück:

SELECT 'today'::timestamptz;