first version of sqlite migration reader
authorMarcus Eggenberger <egs@quassel-irc.org>
Sat, 28 Feb 2009 18:06:49 +0000 (19:06 +0100)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 3 Mar 2009 19:57:04 +0000 (20:57 +0100)
12 files changed:
src/core/SQL/SQLite/14/migrate_read_backlog.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_buffer.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_identity.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_identity_nick.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_ircserver.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_network.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_quasseluser.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_sender.sql [new file with mode: 0644]
src/core/SQL/SQLite/14/migrate_read_usersetting.sql [new file with mode: 0644]
src/core/sql.qrc
src/core/sqlitestorage.cpp
src/core/sqlitestorage.h

diff --git a/src/core/SQL/SQLite/14/migrate_read_backlog.sql b/src/core/SQL/SQLite/14/migrate_read_backlog.sql
new file mode 100644 (file)
index 0000000..6db9d23
--- /dev/null
@@ -0,0 +1,3 @@
+SELECT messageid, time, bufferid, type, flags, senderid, message
+FROM backlog
+
diff --git a/src/core/SQL/SQLite/14/migrate_read_buffer.sql b/src/core/SQL/SQLite/14/migrate_read_buffer.sql
new file mode 100644 (file)
index 0000000..4f7de4f
--- /dev/null
@@ -0,0 +1,2 @@
+SELECT bufferid, userid, groupid, networkid, buffername, buffercname, buffertype, lastseenmsgid, key, joined
+FROM buffer
diff --git a/src/core/SQL/SQLite/14/migrate_read_identity.sql b/src/core/SQL/SQLite/14/migrate_read_identity.sql
new file mode 100644 (file)
index 0000000..da3ffa6
--- /dev/null
@@ -0,0 +1,4 @@
+SELECT identityid, userid, identityname, realname, awaynick, awaynickenabled, awayreason, 
+       awayreasonenabled, autoawayenabled, autoawaytime, autoawayreason, autoawayreasonenabled, detachawayenabled, detachawayreason, detachawayreasonenabled, 
+       ident, kickreason, partreason, quitreason, sslcert, sslkey
+FROM identity
diff --git a/src/core/SQL/SQLite/14/migrate_read_identity_nick.sql b/src/core/SQL/SQLite/14/migrate_read_identity_nick.sql
new file mode 100644 (file)
index 0000000..8954f79
--- /dev/null
@@ -0,0 +1,2 @@
+SELECT nickid, identityid, nick
+FROM identity_nick
diff --git a/src/core/SQL/SQLite/14/migrate_read_ircserver.sql b/src/core/SQL/SQLite/14/migrate_read_ircserver.sql
new file mode 100644 (file)
index 0000000..2c0114c
--- /dev/null
@@ -0,0 +1,2 @@
+SELECT serverid, userid, networkid, hostname, port, password, ssl, sslversion, useproxy, proxytype, proxyhost, proxyport, proxyuser, proxypass
+FROM ircserver
diff --git a/src/core/SQL/SQLite/14/migrate_read_network.sql b/src/core/SQL/SQLite/14/migrate_read_network.sql
new file mode 100644 (file)
index 0000000..1308d80
--- /dev/null
@@ -0,0 +1,5 @@
+SELECT networkid, userid, networkname, identityid, encodingcodec, decodingcodec, servercodec,
+       userandomserver, perform, useautoidentify, autoidentifyservice, autoidentifypassword,
+       useautoreconnect, autoreconnectinterval, autoreconnectretries, unlimitedconnectretries,
+       rejoinchannels, connected, usermode, awaymessage, attachperform, detachperform
+FROM network
diff --git a/src/core/SQL/SQLite/14/migrate_read_quasseluser.sql b/src/core/SQL/SQLite/14/migrate_read_quasseluser.sql
new file mode 100644 (file)
index 0000000..5adf0d9
--- /dev/null
@@ -0,0 +1,2 @@
+SELECT userid, username, password
+FROM quasseluser
diff --git a/src/core/SQL/SQLite/14/migrate_read_sender.sql b/src/core/SQL/SQLite/14/migrate_read_sender.sql
new file mode 100644 (file)
index 0000000..c74d2e9
--- /dev/null
@@ -0,0 +1,2 @@
+SELECT senderid, sender
+FROM sender
diff --git a/src/core/SQL/SQLite/14/migrate_read_usersetting.sql b/src/core/SQL/SQLite/14/migrate_read_usersetting.sql
new file mode 100644 (file)
index 0000000..dc67d6b
--- /dev/null
@@ -0,0 +1,3 @@
+SELECT userid, settingname, settingvalue
+FROM user_setting
+
index e373055..d028ac7 100644 (file)
     <file>./SQL/SQLite/14/insert_sender.sql</file>
     <file>./SQL/SQLite/14/insert_server.sql</file>
     <file>./SQL/SQLite/14/insert_user_setting.sql</file>
     <file>./SQL/SQLite/14/insert_sender.sql</file>
     <file>./SQL/SQLite/14/insert_server.sql</file>
     <file>./SQL/SQLite/14/insert_user_setting.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_backlog.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_buffer.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_identity.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_identity_nick.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_ircserver.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_network.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_quasseluser.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_sender.sql</file>
+    <file>./SQL/SQLite/14/migrate_read_usersetting.sql</file>
     <file>./SQL/SQLite/14/select_authuser.sql</file>
     <file>./SQL/SQLite/14/select_buffer_by_id.sql</file>
     <file>./SQL/SQLite/14/select_buffer_lastseen_messages.sql</file>
     <file>./SQL/SQLite/14/select_authuser.sql</file>
     <file>./SQL/SQLite/14/select_buffer_by_id.sql</file>
     <file>./SQL/SQLite/14/select_buffer_lastseen_messages.sql</file>
index 82ab2ab..c2c9f0c 100644 (file)
@@ -986,7 +986,7 @@ QList<Message> SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId
     return messagelist;
 
   QSqlQuery query(logDb());
     return messagelist;
 
   QSqlQuery query(logDb());
-  
+
   if(last == -1 && first == -1) {
     query.prepare(queryString("select_messagesNewestK"));
   } else if(last == -1) {
   if(last == -1 && first == -1) {
     query.prepare(queryString("select_messagesNewestK"));
   } else if(last == -1) {
@@ -1072,3 +1072,207 @@ bool SqliteStorage::safeExec(QSqlQuery &query, int retryCount) {
     return false;
   }
 }
     return false;
   }
 }
+
+
+// ========================================
+//  SqliteMigration
+// ========================================
+SqliteMigrationReader::SqliteMigrationReader()
+  : SqliteStorage()
+{
+}
+
+bool SqliteMigrationReader::prepareQuery(MigrationObject mo) {
+  QString query;
+  switch(mo) {
+  case QuasselUser:
+    query = queryString("migrate_read_quasseluser");
+    break;
+  case Sender:
+    query = queryString("migrate_read_sender");
+    break;
+  case Identity:
+    query = queryString("migrate_read_identity");
+    break;
+  case IdentityNick:
+    query = queryString("migrate_read_identity_nick");
+    break;
+  case Network:
+    query = queryString("migrate_read_network");
+    break;
+  case Buffer:
+    query = queryString("migrate_read_buffer");
+    break;
+  case Backlog:
+    query = queryString("migrate_read_backlog");
+    break;
+  case IrcServer:
+    query = queryString("migrate_read_ircserver");
+    break;
+  case UserSetting:
+    query = queryString("migrate_read_usersetting");
+    break;
+  }
+  newQuery(query, logDb());
+  return exec();
+}
+
+//bool SqliteMigrationReader::readUser(QuasselUserMO &user) {
+bool SqliteMigrationReader::readMo(QuasselUserMO &user) {
+  if(!next())
+    return false;
+
+  user.id = value(0).toInt();
+  user.username = value(1).toString();
+  user.password = value(2).toString();
+  return true;
+}
+
+//bool SqliteMigrationReader::readSender(SenderMO &sender) {
+bool SqliteMigrationReader::readMo(SenderMO &sender) {
+  if(!next())
+    return false;
+
+  sender.senderId = value(0).toInt();
+  sender.sender = value(1).toString();
+  return true;
+}
+
+//bool SqliteMigrationReader::readIdentity(IdentityMO &identity) {
+bool SqliteMigrationReader::readMo(IdentityMO &identity) {
+  if(!next())
+    return false;
+
+  identity.id = value(0).toInt();
+  identity.userid = value(1).toInt();
+  identity.identityname = value(2).toString();
+  identity.realname = value(3).toString();
+  identity.awayNick = value(4).toString();
+  identity.awayNickEnabled = value(5).toInt() == 1 ? true : false;
+  identity.awayReason = value(6).toString();
+  identity.awayReasonEnabled = value(7).toInt() == 1 ? true : false;
+  identity.autoAwayEnabled = value(8).toInt() == 1 ? true : false;
+  identity.autoAwayTime = value(9).toInt();
+  identity.autoAwayReason = value(10).toString();
+  identity.autoAwayReasonEnabled = value(11).toInt() == 1 ? true : false;
+  identity.detachAwayEnabled = value(12).toInt() == 1 ? true : false;
+  identity.detachAwayReason = value(13).toString();
+  identity.detchAwayReasonEnabled = value(14).toInt() == 1 ? true : false;
+  identity.ident = value(15).toString();
+  identity.kickReason = value(16).toString();
+  identity.partReason = value(17).toString();
+  identity.quitReason = value(18).toString();
+  identity.sslCert = value(19).toByteArray();
+  identity.sslKey = value(20).toByteArray();
+  return true;
+}
+
+//bool SqliteMigrationReader::readIdentityNick(IdentityNickMO &identityNick) {
+bool SqliteMigrationReader::readMo(IdentityNickMO &identityNick) {
+  if(!next())
+    return false;
+
+  identityNick.nickid = value(0).toInt();
+  identityNick.identityId = value(1).toInt();
+  identityNick.nick = value(2).toString();
+  return true;
+}
+
+//bool SqliteMigrationReader::readNetwork(NetworkMO &network) {
+bool SqliteMigrationReader::readMo(NetworkMO &network) {
+  if(!next())
+    return false;
+
+  network.networkid = value(0).toInt();
+  network.userid = value(1).toInt();
+  network.networkname = value(2).toString();
+  network.identityid = value(3).toInt();
+  network.encodingcodec = value(4).toString();
+  network.decodingcodec = value(5).toString();
+  network.servercodec = value(6).toString();
+  network.userandomserver = value(7).toInt() == 1 ? true : false;
+  network.perform = value(8).toString();
+  network.useautoidentify = value(9).toInt() == 1 ? true : false;
+  network.autoidentifyservice = value(10).toString();
+  network.autoidentifypassword = value(11).toString();
+  network.useautoreconnect = value(12).toInt() == 1 ? true : false;
+  network.autoreconnectinterval = value(13).toInt();
+  network.autoreconnectretries = value(14).toInt();
+  network.unlimitedconnectretries = value(15).toInt() == 1 ? true : false;
+  network.rejoinchannels = value(16).toInt() == 1 ? true : false;
+  network.connected = value(17).toInt() == 1 ? true : false;
+  network.usermode = value(18).toString();
+  network.awaymessage = value(19).toString();
+  network.attachperform = value(20).toString();
+  network.detachperform = value(21).toString();
+  return true;
+}
+
+//bool SqliteMigrationReader::readBuffer(BufferMO &buffer) {
+bool SqliteMigrationReader::readMo(BufferMO &buffer) {
+  if(!next())
+    return false;
+
+  buffer.bufferid = value(0).toInt();
+  buffer.userid = value(1).toInt();
+  buffer.groupid = value(2).toInt();
+  buffer.networkid = value(3).toInt();
+  buffer.buffername = value(4).toString();
+  buffer.buffercname = value(5).toString();
+  buffer.buffertype = value(6).toInt();
+  buffer.lastseenmsgid = value(7).toInt();
+  buffer.key = value(8).toString();
+  buffer.joined = value(9).toInt() == 1 ? true : false;
+  return true;
+}
+
+//bool SqliteMigrationReader::readBacklog(BacklogMO &backlog) {
+bool SqliteMigrationReader::readMo(BacklogMO &backlog) {
+  if(!next())
+    return false;
+
+  backlog.messageid = value(0).toInt();
+  backlog.time = QDateTime::fromTime_t(value(1).toInt());
+  backlog.bufferid = value(2).toInt();
+  backlog.type = value(3).toInt();
+  backlog.flags = value(4).toInt();
+  backlog.senderid = value(5).toInt();
+  backlog.message = value(6).toString();
+  return true;
+}
+
+//bool SqliteMigrationReader::readIrcServer(IrcServerMO &ircserver) {
+bool SqliteMigrationReader::readMo(IrcServerMO &ircserver) {
+  if(!next())
+    return false;
+
+  ircserver.serverid = value(0).toInt();
+  ircserver.userid = value(1).toInt();
+  ircserver.networkid = value(2).toInt();
+  ircserver.hostname = value(3).toString();
+  ircserver.port = value(4).toInt();
+  ircserver.password = value(5).toString();
+  ircserver.ssl = value(6).toInt() == 1 ? true : false;
+  ircserver.sslversion = value(7).toInt();
+  ircserver.useproxy = value(8).toInt() == 1 ? true : false;
+  ircserver.proxytype = value(9).toInt();
+  ircserver.proxyhost = value(10).toString();
+  ircserver.proxyport = value(11).toInt();
+  ircserver.proxyuser = value(12).toString();
+  ircserver.proxypass = value(13).toString();
+  return true;
+}
+
+//bool SqliteMigrationReader::readUserSetting(UserSettingMO &userSetting) {
+bool SqliteMigrationReader::readMo(UserSettingMO &userSetting) {
+  if(!next())
+    return false;
+
+  userSetting.userid = value(0).toInt();
+  userSetting.settingname = value(1).toString();
+  userSetting.settingvalue = value(2).toByteArray();
+
+  return true;
+}
+
+
index 20f9da7..3f21306 100644 (file)
@@ -79,7 +79,7 @@ public slots:
   virtual void setAwayMessage(UserId user, NetworkId networkId, const QString &awayMsg);
   virtual QString userModes(UserId user, NetworkId networkId);
   virtual void setUserModes(UserId user, NetworkId networkId, const QString &userModes);
   virtual void setAwayMessage(UserId user, NetworkId networkId, const QString &awayMsg);
   virtual QString userModes(UserId user, NetworkId networkId);
   virtual void setUserModes(UserId user, NetworkId networkId, const QString &userModes);
-  
+
   /* Buffer handling */
   virtual BufferInfo bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer = "", bool create = true);
   virtual BufferInfo getBufferInfo(UserId user, const BufferId &bufferId);
   /* Buffer handling */
   virtual BufferInfo bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer = "", bool create = true);
   virtual BufferInfo getBufferInfo(UserId user, const BufferId &bufferId);
@@ -116,4 +116,43 @@ private:
   static int _maxRetryCount;
 };
 
   static int _maxRetryCount;
 };
 
+// ========================================
+//  SqliteMigration
+// ========================================
+class SqliteMigrationReader : public SqliteStorage, public AbstractSqlMigrationReader {
+  Q_OBJECT
+
+public:
+  SqliteMigrationReader();
+
+//   virtual bool readUser(QuasselUserMO &user);
+//   virtual bool readSender(SenderMO &sender);
+//   virtual bool readIdentity(IdentityMO &identity);
+//   virtual bool readIdentityNick(IdentityNickMO &identityNick);
+//   virtual bool readNetwork(NetworkMO &network);
+//   virtual bool readBuffer(BufferMO &buffer);
+//   virtual bool readBacklog(BacklogMO &backlog);
+//   virtual bool readIrcServer(IrcServerMO &ircserver);
+//   virtual bool readUserSetting(UserSettingMO &userSetting);
+
+  virtual bool readMo(QuasselUserMO &user);
+  virtual bool readMo(SenderMO &sender);
+  virtual bool readMo(IdentityMO &identity);
+  virtual bool readMo(IdentityNickMO &identityNick);
+  virtual bool readMo(NetworkMO &network);
+  virtual bool readMo(BufferMO &buffer);
+  virtual bool readMo(BacklogMO &backlog);
+  virtual bool readMo(IrcServerMO &ircserver);
+  virtual bool readMo(UserSettingMO &userSetting);
+
+  virtual bool prepareQuery(MigrationObject mo);
+
+protected:
+  virtual inline bool transaction() { return logDb().transaction(); }
+  virtual inline void rollback() { logDb().rollback(); }
+  virtual inline bool commit() { return logDb().commit(); }
+};
+
+
+
 #endif
 #endif