Helping Postgres' Query Planer.
authorMarcus Eggenberger <egs@quassel-irc.org>
Fri, 26 Jun 2009 08:31:33 +0000 (10:31 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Fri, 26 Jun 2009 08:31:33 +0000 (10:31 +0200)
Note: this does not guarantee, that issues with Postgres are resolved
for everyone. These changes produced very good results in a couple of
test series. Let me know how they work out for you.

src/core/SQL/PostgreSQL/14/select_messages.sql
src/core/SQL/PostgreSQL/14/select_messagesNewerThan.sql
src/core/SQL/PostgreSQL/14/select_messagesRange.sql

index eae93cf..1bd2683 100644 (file)
@@ -1,6 +1,6 @@
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
-JOIN sender ON backlog.senderid = sender.senderid
+LEFT JOIN sender ON backlog.senderid = sender.senderid
 WHERE bufferid = $1
 ORDER BY messageid DESC
 LIMIT $2
\ No newline at end of file
 WHERE bufferid = $1
 ORDER BY messageid DESC
 LIMIT $2
\ No newline at end of file
index 7dda189..393d3cf 100644 (file)
@@ -1,6 +1,6 @@
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
-JOIN sender ON backlog.senderid = sender.senderid
+LEFT JOIN sender ON backlog.senderid = sender.senderid
 WHERE backlog.messageid >= $1 AND bufferid = $2
 ORDER BY messageid DESC
 LIMIT $3
\ No newline at end of file
 WHERE backlog.messageid >= $1 AND bufferid = $2
 ORDER BY messageid DESC
 LIMIT $3
\ No newline at end of file
index e7a6a5a..9bd8613 100644 (file)
@@ -1,6 +1,6 @@
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
-JOIN sender ON backlog.senderid = sender.senderid
+LEFT JOIN sender ON backlog.senderid = sender.senderid
 WHERE backlog.messageid >= $1
     AND backlog.messageid < $2
     AND bufferid = $3
 WHERE backlog.messageid >= $1
     AND backlog.messageid < $2
     AND bufferid = $3