core: Fix Postgres messagesNewerThan wrong buffer 276/head
authorShane Synan <digitalcircuit36939@gmail.com>
Sun, 5 Mar 2017 19:39:38 +0000 (13:39 -0600)
committerShane Synan <digitalcircuit36939@gmail.com>
Sun, 5 Mar 2017 20:53:34 +0000 (14:53 -0600)
Make the inner SELECT statement use the buffer ID for bufferid, NOT
the messageid.

This fixes select_messagesNewerThan using the wrong variable for the
buffer ID, causing more recent messages to not show up when fetching
backlog with the "Unread messages" method.

Fixes regression in pull request #273, missed by pull request #274.

NOTE: The client still needs fixed to stop sending invalid IDs.  That
should be addressed with another set of commits.

See https://github.com/quassel/quassel/pull/274#issuecomment-284205802

src/core/SQL/PostgreSQL/20/select_messagesNewerThan.sql

index 881ce5e..571f538 100644 (file)
@@ -2,7 +2,7 @@ SELECT messageid, time,  type, flags, sender, message
 FROM backlog
 JOIN sender ON backlog.senderid = sender.senderid
 WHERE backlog.messageid >= $1
-AND backlog.messageid <= (SELECT buffer.lastmsgid FROM buffer WHERE buffer.bufferid = $1)
+AND backlog.messageid <= (SELECT buffer.lastmsgid FROM buffer WHERE buffer.bufferid = $2)
 AND bufferid = $2
 ORDER BY messageid DESC
 LIMIT $3