Problemas conhecidos na interface do PostgreSQL para o Cloud Spanner

Esta página destaca as diferenças de comportamento entre os recursos do PostgreSQL compatíveis com o Cloud Spanner e os equivalentes do PostgreSQL de código aberto.

Subfluxo 8

Em alguns casos, o PostgreSQL de código aberto retorna um erro como ERROR: value out of range: underflow caso o resultado da matemática de ponto flutuante seja truncado para 0. Números muito próximos de zero que não podem ser representados como zeros causam um erro de subfluxo.

Nesses casos, a interface PostgreSQL não retorna um erro. Em vez disso, ela retorna o valor 0 truncado.

Função concat()

Na interface do PostgreSQL, a função concat() retorna NULL se algum argumento for NULL. No entanto, no PostgreSQL de código aberto, essa função ignora NULLs e retorna uma concatenação de todos os argumentos que não são NULL ou uma string vazia se todos os argumentos forem NULL. Exemplo:

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

A interface do PostgreSQL e o PostgreSQL de código aberto têm comportamento idêntico para o operador ||.

Literais de data/hora

Evite usar os seguintes literais especiais para date e timestamptz porque a interface do PostgreSQL retorna resultados incorretos: now, yesterday, today, tomorrow, epoch, -infinity e infinity.

Por exemplo, a consulta a seguir retorna resultados incorretos:

SELECT 'today'::timestamptz;