Index: emesene/LogViewer.py
===================================================================
--- emesene.orig/LogViewer.py	2008-09-17 20:24:13.807682678 +0800
+++ emesene/LogViewer.py	2008-09-17 20:25:13.267684438 +0800
@@ -230,7 +230,7 @@
         t1 = time.time()
         for (stamp, name, account, data) in self.logger.query('\
         select e.stamp, e.name, u.account, ue.data \
-        from event e, user_event ue, user u \
+        from user u, event e, user_event ue \
         where ue.id_event = e.id and \
         ue.id_user = u.id and \
         u.account in (%s) and \
Index: emesene/plugins_base/Logger.py
===================================================================
--- emesene.orig/plugins_base/Logger.py	2008-09-17 19:28:26.295684296 +0800
+++ emesene/plugins_base/Logger.py	2008-09-17 20:22:58.994684239 +0800
@@ -91,6 +91,8 @@
         data TEXT
  )
     '''
+    CREATE_USER_EVENT_INDEX_EVENT = 'CREATE INDEX ueidevent ON user_event(id_event)'
+    CREATE_USER_EVENT_INDEX_USER = 'CREATE INDEX ueiduser ON user_event(id_user)'
 
     USER_EXISTS = 'SELECT id FROM user WHERE account = ?'
     USER_ADD = 'INSERT INTO user(id, account) VALUES(null, ?)'
@@ -131,6 +133,8 @@
         self.cursor.execute(Logger.CREATE_CONVERSATION)
         self.cursor.execute(Logger.CREATE_EVENT)
         self.cursor.execute(Logger.CREATE_USER_EVENT)
+        self.cursor.execute(Logger.CREATE_USER_EVENT_INDEX_EVENT)
+        self.cursor.execute(Logger.CREATE_USER_EVENT_INDEX_USER)
         self.cursor.execute(Logger.CREATE_CONVERSATION_EVENT)
         self.connection.commit()
         
@@ -226,7 +230,7 @@
     def get_user_events(self):
         '''return a list of unique user events found on the logs'''
         return [item[0] for item in \
-            self.query('select distinct name from event, user_event where \
+            self.query('select distinct name from user_event, event where \
             id_event = id order by name')]
 
     def get_nick_stamp(self, contact, timestamp):
@@ -234,7 +238,7 @@
         if no stamp is available'''
 
         result = self.query('select e.stamp \
-        from event e, user_event ue, user u \
+        from user u, event e, user_event ue \
         where ue.id_user = u.id and \
         ue.id_event = e.id and \
         e.stamp < %s and \
@@ -255,7 +259,7 @@
         return None if no result'''
 
         result = self.query('select e.stamp \
-        from event e, user_event ue, user u \
+        from user u, event e, user_event ue \
         where ue.id_user = u.id and \
         ue.id_event = e.id and \
         e.stamp >= %s and \
@@ -278,7 +282,7 @@
             return contact
 
         return self.query('select ue.data \
-        from user_event ue, event e \
+        from event e, user_event ue \
         where e.stamp = %f and \
         ue.id_event = e.id' % (stamp,))[0][0]
     
@@ -479,7 +483,7 @@
 
         query = '''
         select e.stamp, ue.data 
-        from event e, user_event ue, user u
+        from user u, event e, user_event ue
         where e.id = ue.id_event and
         u.id = ue.id_user and
         e.name = "status-changed" and
@@ -497,7 +501,7 @@
 
         query = '''
         select e.stamp, ue.data 
-        from event e, user_event ue, user u
+        from user u, event e, user_event ue
         where e.id = ue.id_event and
         u.id = ue.id_user and
         e.name = "nick-changed" and
@@ -515,7 +519,7 @@
 
         query = '''
         select e.stamp, ue.data 
-        from event e, user_event ue, user u
+        from user u, event e, user_event ue
         where e.id = ue.id_event and
         u.id = ue.id_user and
         e.name = "personal-message-changed" and
@@ -566,7 +570,7 @@
 
         query = '''
         select e.stamp, ce.data 
-        from event e, conversation_event ce, user u
+        from user u, event e, conversation_event ce
         where e.id = ce.id_event and
         u.id = ce.id_user and
         e.name = "message" and
@@ -584,7 +588,7 @@
 
         query = '''
         select e.stamp, ue.data 
-        from event e, user_event ue, user u
+        from user u, event e, user_event ue
         where e.id = ue.id_event and
         u.id = ue.id_user and
         e.name = "display-picture" and
@@ -602,7 +606,7 @@
 
         query = '''
         select e.stamp, ce.data 
-        from event e, conversation_event ce, user u
+        from user u, event e, conversation_event ce
         where e.id = ce.id_event and
         u.id = ce.id_user and
         e.name = "custom-emoticon" and
