changeset 775b0b18efb1 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=775b0b18efb1 description: Create index on the logs table on time instead of on kind.
That way we can search through all logs in constant time instead of having to perform a full table scan.
diffstat:
src/common/check_paths.py | 2 +- src/common/defs.py | 2 +- src/common/optparser.py | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-)
diffs (62 lines):
diff -r 9bc4f60a4a17 -r 775b0b18efb1 src/common/check_paths.py --- a/src/common/check_paths.py Sun Dec 27 16:23:31 2009 +0100 +++ b/src/common/check_paths.py Sun Dec 27 16:50:43 2009 +0100 @@ -79,7 +79,7 @@ subject TEXT );
- CREATE INDEX idx_logs_jid_id_kind ON logs (jid_id, kind); + CREATE INDEX idx_logs_jid_id_time ON logs (jid_id, time DESC);
CREATE TABLE caps_cache ( hash_method TEXT, diff -r 9bc4f60a4a17 -r 775b0b18efb1 src/common/defs.py --- a/src/common/defs.py Sun Dec 27 16:23:31 2009 +0100 +++ b/src/common/defs.py Sun Dec 27 16:50:43 2009 +0100 @@ -27,7 +27,7 @@ basedir = '../' localedir = '../po'
-version = '0.13.10.0-dev' +version = '0.13.10.1-dev'
import sys, os.path for base in ('.', 'common'): diff -r 9bc4f60a4a17 -r 775b0b18efb1 src/common/optparser.py --- a/src/common/optparser.py Sun Dec 27 16:23:31 2009 +0100 +++ b/src/common/optparser.py Sun Dec 27 16:50:43 2009 +0100 @@ -214,6 +214,8 @@ self.update_config_to_01258() if old < [0, 13, 10, 0] and new >= [0, 13, 10, 0]: self.update_config_to_013100() + if old < [0, 13, 10, 1] and new >= [0, 13, 10, 1]: + self.update_config_to_013101()
gajim.logger.init_vars() gajim.config.set('version', new_version) @@ -857,4 +859,25 @@ con.close() gajim.config.set('version', '0.13.10.0')
+ def update_config_to_013101(self): + back = os.getcwd() + os.chdir(logger.LOG_DB_FOLDER) + con = sqlite.connect(logger.LOG_DB_FILE) + os.chdir(back) + cur = con.cursor() + try: + cur.executescript( + ''' + DROP INDEX IF EXISTS idx_logs_jid_id_kind; + + CREATE INDEX IF NOT EXISTS + idx_logs_jid_id_time ON logs (jid_id, time DESC); + ''' + ) + con.commit() + except sqlite.OperationalError: + pass + con.close() + gajim.config.set('version', '0.13.10.1') + # vim: se ts=3: