summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeif Lotfy <seif@lotfy.com>2012-05-13 19:28:20 +0200
committerTrever Fischer <tdfischer@fedoraproject.org>2012-05-14 16:45:31 -0400
commitd35ce57b59783df891742c8d6ca2c0c8c1029bf3 (patch)
tree31c72173f9567ac8f407b6453b7852078842771f
parentc5832cb6e898661c554e390092785c47896b9ad3 (diff)
downloadzeitgeist-d35ce57b59783df891742c8d6ca2c0c8c1029bf3.tar.gz
db-reader.vala: modify get_where_clause_for_symbol to use OR statements instead of IN statements. This improves the query times a bit. In some cases by 0.05s.
-rw-r--r--src/db-reader.vala13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/db-reader.vala b/src/db-reader.vala
index f7c996f6..8dac1cce 100644
--- a/src/db-reader.vala
+++ b/src/db-reader.vala
@@ -871,14 +871,17 @@ public class DbReader : Object
}
else
{
- var sb = new StringBuilder ();
+ string sql = "(%s)";
+ string sub_sql = "";
+ bool first = true;
foreach (unowned string uri in symbols)
{
- sb.append_printf ("%d,", lookup_table.id_try_string (uri));
+ if (!first)
+ sub_sql = sub_sql + " OR ";
+ sub_sql = sub_sql + "%s = %i ".printf (table_name, lookup_table.id_try_string (uri));
+ first = false;
}
- sb.truncate (sb.len - 1);
-
- string sql = "%s IN (%s)".printf(table_name, sb.str);
+ sql = sql.printf (sub_sql);
subwhere.add(sql);
}