[shotwell] Add indexs to PhotoTable



commit 767950c196c447d69b47df7a5180d41f3bae0c26
Author: Jens Georg <mail jensge org>
Date:   Sun Jul 24 08:44:28 2016 +0200

    Add indexs to PhotoTable
    
    To speed up duplicate searches. This is the first try on my rather limited set
    of images; if these don't provide a decent speedup, we might need to create
    some covering indexes.
    
    Signed-off-by: Jens Georg <mail jensge org>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=742670

 src/db/PhotoTable.vala |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/src/db/PhotoTable.vala b/src/db/PhotoTable.vala
index 5be08e7..7649694 100644
--- a/src/db/PhotoTable.vala
+++ b/src/db/PhotoTable.vala
@@ -158,6 +158,33 @@ public class PhotoTable : DatabaseTable {
         if (res2 != Sqlite.DONE)
             fatal("create photo table", res2);
 
+        // These are for duplicate searches
+        // https://bugzilla.gnome.org/show_bug.cgi?id=742670
+        //
+        // 1) index on md5,file_format
+        res = db.prepare_v2 ("CREATE UNIQUE INDEX IF NOT EXISTS PhotoTableMD5Format on PhotoTable(md5, 
file_format)", -1, out stmt);
+        assert (res == Sqlite.OK);
+        res = stmt.step ();
+        if (res == Sqlite.DONE) {
+            DatabaseTable.warning ("Failed to create index on md5 and file_format", res);
+        }
+
+        // 2) index on thumbnail_md5,file_format
+        res = db.prepare_v2 ("CREATE UNIQUE INDEX IF NOT EXISTS PhotoTableThumbnailMD5Format on 
PhotoTable(md5, file_format)", -1, out stmt);
+        assert (res == Sqlite.OK);
+        res = stmt.step ();
+        if (res == Sqlite.DONE) {
+            DatabaseTable.warning ("Failed to create index on md5 and file_format", res);
+        }
+
+        // 3) index on thumbnail_md5,md5
+        res = db.prepare_v2 ("CREATE UNIQUE INDEX IF NOT EXISTS PhotoTableThumbnailMD5MD5 on 
PhotoTable(thumbnail_md5, md5)", -1, out stmt);
+        assert (res == Sqlite.OK);
+        res = stmt.step ();
+        if (res == Sqlite.DONE) {
+            DatabaseTable.warning ("Failed to create index on thumbnail_md5 and md5", res);
+        }
+
         set_table_name("PhotoTable");
     }
     


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]