summaryrefslogtreecommitdiff
path: root/src/db-reader.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/db-reader.vala')
-rw-r--r--src/db-reader.vala11
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)
{