diff options
| author | Seif Lotfy <seif@lotfy.com> | 2012-05-13 19:28:20 +0200 |
|---|---|---|
| committer | Trever Fischer <tdfischer@fedoraproject.org> | 2012-05-14 16:45:31 -0400 |
| commit | d35ce57b59783df891742c8d6ca2c0c8c1029bf3 (patch) | |
| tree | 31c72173f9567ac8f407b6453b7852078842771f | |
| parent | c5832cb6e898661c554e390092785c47896b9ad3 (diff) | |
| download | zeitgeist-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.vala | 13 |
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); } |
