Acabou sendo um problema de índice. O comportamento NULLS da consulta não era coerente com o índice.
CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);
... ORDER BY message.created_at DESC; -- defaults to NULLS FIRST when DESC
soluções
Se você especificar NULLS em seu índice ou consulta, verifique se eles são coerentes entre si.
ou seja:
ASC NULLS LAST
é coerente com ASC NULLS LAST
ou DESC NULLS FIRST
. ÚLTIMO NULOS
CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);
... ORDER BY messsage.created_at DESC NULLS LAST;
NULOS PRIMEIRO
CREATE INDEX message_created_at_idx on message (created_at DESC); -- defaults to NULLS FIRST when DESC
... ORDER BY messsage.created_at DESC -- defaults to NULLS FIRST when DESC;
NÃO NULO
Se sua coluna NÃO for NULL, não se preocupe com NULL.
CREATE INDEX message_created_at_idx on message (created_at DESC);
... ORDER BY messsage.created_at DESC;