En esta página, se detallan las diferencias de comportamiento entre las capacidades de PostgreSQL compatibles con Cloud Spanner y sus equivalentes de código abierto de PostgreSQL.
Subflujo de Float8
En algunos casos, PostgreSQL muestra cómo se muestra ERROR: value out of range: underflow
si el resultado del cálculo del punto flotante se trunca a 0. Los números que están demasiado cerca de cero y no son representativos, ya que son distintos de cero, provocan un error de subdesbordamiento.
En estos casos, la interfaz de PostgreSQL no muestra un error; en su lugar, muestra el valor truncado 0.
Función concat()
En la interfaz de PostgreSQL, la función concat()
muestra NULL si algún argumento es NULL. Sin embargo, en PostgreSQL de código abierto, esta función ignora los NULL y muestra una concatenación de todos los argumentos que no son NULL, o bien una string vacía si todos los argumentos son NULL. Por ejemplo:
-- Returns `abcdef` in open-source PostgreSQL.
-- Returns NULL in the PostgreSQL interface.
select concat('abc'::text, NULL::text, 'def'::text);
La interfaz de PostgreSQL y el código abierto de PostgreSQL tienen un comportamiento idéntico para el operador ||
.
Literales de fecha y hora
Evita usar los siguientes literales especiales para date
y timestamptz
, ya que la interfaz de PostgreSQL muestra resultados incorrectos: now
, yesterday
, today
, tomorrow
, epoch
, -infinity
y infinity
.
Por ejemplo, la siguiente consulta muestra resultados incorrectos:
SELECT 'today'::timestamptz;