making use of postgres timestamps
authorMarcus Eggenberger <egs@quassel-irc.org>
Sun, 22 Feb 2009 16:50:38 +0000 (17:50 +0100)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 3 Mar 2009 19:57:04 +0000 (20:57 +0100)
src/core/SQL/PostgreSQL/14/setup_060_backlog.sql
src/core/coresession.cpp
src/core/postgresqlstorage.cpp

index 1f281b0..0523fcd 100644 (file)
@@ -1,6 +1,6 @@
 CREATE TABLE backlog (
        messageid serial PRIMARY KEY,
-       time integer NOT NULL,
+       time timestamp NOT NULL,
        bufferid integer NOT NULL REFERENCES buffer (bufferid) ON DELETE CASCADE,
        type integer NOT NULL,
        flags integer NOT NULL,
index 38d96ac..32429a3 100644 (file)
@@ -251,7 +251,6 @@ void CoreSession::processMessages() {
       }
       messages << Message(bufferInfo, rawMsg.type, rawMsg.text, rawMsg.sender, rawMsg.flags);
     }
-
     Core::storeMessages(messages);
     // FIXME: extend protocol to a displayMessages(MessageList)
     for(int i = 0; i < messages.count(); i++) {
index 96805ba..f097808 100644 (file)
@@ -276,7 +276,7 @@ IdentityId PostgreSqlStorage::createIdentity(UserId user, CoreIdentity &identity
     return IdentityId();
   }
 
-  qDebug() << "creatId" << query.first() << query.value(0).toInt();
+  query.first();
   identityId = query.value(0).toInt();
   identity.setId(identityId);
 
@@ -488,7 +488,7 @@ NetworkId PostgreSqlStorage::createNetwork(UserId user, const NetworkInfo &info)
     return NetworkId();
   }
 
-  qDebug() << "createNet:" << query.first() << query.value(0).toInt();
+  query.first();
   networkId = query.value(0).toInt();
 
   if(!networkId.isValid()) {
@@ -1120,7 +1120,7 @@ bool PostgreSqlStorage::logMessage(Message &msg) {
   }
 
   QVariantList params;
-  params << msg.timestamp().toTime_t()
+  params << msg.timestamp()
         << msg.bufferInfo().bufferId().toInt()
         << msg.type()
         << (int)msg.flags()
@@ -1204,7 +1204,7 @@ bool PostgreSqlStorage::logMessages(MessageList &msgs) {
   for(int i = 0; i < msgs.count(); i++) {
     Message &msg = msgs[i];
     QVariantList params;
-    params << msg.timestamp().toTime_t()
+    params << msg.timestamp()
           << msg.bufferInfo().bufferId().toInt()
           << msg.type()
           << (int)msg.flags()
@@ -1267,8 +1267,11 @@ QList<Message> PostgreSqlStorage::requestMsgs(UserId user, BufferId bufferId, Ms
     return messagelist;
   }
 
+  QDateTime timestamp;
   for(int i = 0; i < limit && query.next(); i++) {
-    Message msg(QDateTime::fromTime_t(query.value(1).toInt()),
+    timestamp = query.value(1).toDateTime();
+    timestamp.setTimeSpec(Qt::UTC);
+    Message msg(timestamp,
                 bufferInfo,
                 (Message::Type)query.value(2).toUInt(),
                 query.value(5).toString(),
@@ -1313,8 +1316,11 @@ QList<Message> PostgreSqlStorage::requestAllMsgs(UserId user, MsgId first, MsgId
     return messagelist;
   }
 
+  QDateTime timestamp;
   for(int i = 0; i < limit && query.next(); i++) {
-    Message msg(QDateTime::fromTime_t(query.value(2).toInt()),
+    timestamp = query.value(1).toDateTime();
+    timestamp.setTimeSpec(Qt::UTC);
+    Message msg(timestamp,
                 bufferInfoHash[query.value(1).toInt()],
                 (Message::Type)query.value(3).toUInt(),
                 query.value(6).toString(),