From 4e2737bacfbd7bdb7ecd4f9ad5b76180663a8dfc Mon Sep 17 00:00:00 2001 From: Seif Lotfy Date: Sun, 13 May 2012 19:28:20 +0200 Subject: [PATCH 2/2] 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. --- src/db-reader.vala | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/db-reader.vala b/src/db-reader.vala index b78afbc..6d2c20e 100644 --- a/src/db-reader.vala +++ b/src/db-reader.vala @@ -883,14 +883,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); } -- 1.7.9.5