Okazało się, że to kwestia indeksu. Zachowanie zapytania NULLS nie było spójne z indeksem.
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
rozwiązania
Jeśli określisz wartości NULL w indeksie lub zapytaniu, upewnij się, że są one ze sobą spójne.
np:ASC NULLS LAST
jest spójny z ASC NULLS LAST
lub DESC NULLS FIRST
.
NULL OSTATNIE
CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);
... ORDER BY messsage.created_at DESC NULLS LAST;
Najpierw NULL
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;
NIE NULL
Jeśli Twoja kolumna NIE JEST NULL, nie przejmuj się NULLS.
CREATE INDEX message_created_at_idx on message (created_at DESC);
... ORDER BY messsage.created_at DESC;