summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--src/mod_offline_odbc.erl3
-rw-r--r--src/odbc/pg.sql9
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index e2ec555f..8889609f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-20 Alexey Shchepin <alexey@sevcom.net>
+
+ * src/odbc/pg.sql: Added spool.seq field for offline messages
+ sorting
+ * src/mod_offline_odbc.erl: Likewise
+
2005-10-18 Alexey Shchepin <alexey@sevcom.net>
* src/mod_roster_odbc.erl: Bugfix
diff --git a/src/mod_offline_odbc.erl b/src/mod_offline_odbc.erl
index ff973717..d7a77ae4 100644
--- a/src/mod_offline_odbc.erl
+++ b/src/mod_offline_odbc.erl
@@ -214,7 +214,8 @@ pop_offline_messages(Ls, User, Server) ->
case ejabberd_odbc:sql_query(
LServer,
["begin;"
- "select * from spool where username='", EUser, "';"
+ "select username, xml from spool where username='", EUser, "'"
+ " order by seq;"
"delete from spool where username='", EUser, "';"
"commit"]) of
[{updated, undefined},
diff --git a/src/odbc/pg.sql b/src/odbc/pg.sql
index 5d0799cc..e8404b13 100644
--- a/src/odbc/pg.sql
+++ b/src/odbc/pg.sql
@@ -36,10 +36,17 @@ CREATE TABLE rostergroups (
CREATE INDEX pk_rosterg_user_jid ON rostergroups USING btree (username, jid);
+;; To update from previous table definition:
+; CREATE SEQUENCE spool_seq_seq;
+; ALTER TABLE spool ADD COLUMN seq integer;
+; ALTER TABLE spool ALTER COLUMN seq SET DEFAULT nextval('spool_seq_seq');
+; UPDATE spool SET seq = DEFAULT;
+; ALTER TABLE spool ALTER COLUMN seq SET NOT NULL;
CREATE TABLE spool (
username text NOT NULL,
- xml text
+ xml text,
+ seq SERIAL
);
CREATE INDEX i_despool ON spool USING btree (username);