From 3c880b2f4916253f0ff69ca49f03617a85de7130 Mon Sep 17 00:00:00 2001 From: Greg Heartsfield Date: Sat, 17 Dec 2022 07:49:28 -0600 Subject: [PATCH] perf: pull distinct to outermost SQL --- src/db.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/db.rs b/src/db.rs index 49a92d2..db15769 100644 --- a/src/db.rs +++ b/src/db.rs @@ -428,14 +428,13 @@ fn query_from_filter(f: &ReqFilter) -> (String, Vec>) { // if the filter is malformed, don't return anything. if f.force_no_match { - let empty_query = - "SELECT DISTINCT(e.content), e.created_at FROM event e WHERE 1=0".to_owned(); + let empty_query = "SELECT e.content, e.created_at FROM event e WHERE 1=0".to_owned(); // query parameters for SQLite let empty_params: Vec> = vec![]; return (empty_query, empty_params); } - let mut query = "SELECT DISTINCT(e.content), e.created_at FROM event e".to_owned(); + let mut query = "SELECT e.content, e.created_at FROM event e".to_owned(); // query parameters for SQLite let mut params: Vec> = vec![]; @@ -591,7 +590,7 @@ fn query_from_sub(sub: &Subscription) -> (String, Vec>) { // encapsulate subqueries into select statements let subqueries_selects: Vec = subqueries .iter() - .map(|s| format!("SELECT content, created_at FROM ({})", s)) + .map(|s| format!("SELECT distinct content, created_at FROM ({})", s)) .collect(); let query: String = subqueries_selects.join(" UNION "); (query, params)