diff options
Diffstat (limited to 'src/db-reader.vala')
| -rw-r--r-- | src/db-reader.vala | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/db-reader.vala b/src/db-reader.vala index d34b1689..f9434e1a 100644 --- a/src/db-reader.vala +++ b/src/db-reader.vala @@ -171,7 +171,7 @@ public class DbReader : Object public uint32[] find_event_ids_for_clause (WhereClause where, uint max_events, uint result_type) throws EngineError { - string sql = "SELECT id FROM event_view "; + string sql = "SELECT DISTINCT id FROM event_view "; string where_sql = ""; if (!where.is_empty ()) { @@ -297,6 +297,8 @@ public class DbReader : Object if (where.get_is_simple ()) sql = sql.replace ("FROM event_view", "FROM event"); + if (max_events > 0) + sql += " LIMIT %u".printf (max_events); int rc; Sqlite.Statement stmt; @@ -316,13 +318,8 @@ public class DbReader : Object while ((rc = stmt.step()) == Sqlite.ROW) { - var event_id = (uint32) uint64.parse( + event_ids += (uint32) uint64.parse( stmt.column_text (EventViewRows.ID)); - // Events are supposed to be contiguous in the database - if (event_ids.length == 0 || event_ids[event_ids.length-1] != event_id) { - event_ids += event_id; - if (event_ids.length == max_events) break; - } } if (rc != Sqlite.DONE && rc != Sqlite.ROW) { |
