summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2020-08-18 22:09:16 +0200
committerSam Thursfield <sam@afuera.me.uk>2020-09-02 12:17:31 +0200
commitae2669dcf8695260c7f3385bec836b92bcb57f5c (patch)
tree724724a01c54285fc5ea6457a08db358fad7eab7
parent793d8da87695b4abcf7a1fe916e9ed8b3daeab88 (diff)
downloadnautilus-ae2669dcf8695260c7f3385bec836b92bcb57f5c.tar.gz
Use STRSTARTS in preference to tracker:uri-is-descendant() function
In current versions of Tracker, using STRSTARTS to compare URIs is faster than using Tracker's custom tracker:uri-is-descendant() function. The former allows SQLite to use an index while the latter does not.
-rw-r--r--src/nautilus-search-engine-tracker.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nautilus-search-engine-tracker.c b/src/nautilus-search-engine-tracker.c
index 82876368a..cff28eb71 100644
--- a/src/nautilus-search-engine-tracker.c
+++ b/src/nautilus-search-engine-tracker.c
@@ -384,7 +384,10 @@ nautilus_search_engine_tracker_start (NautilusSearchProvider *provider)
}
else
{
- g_string_append_printf (sparql, "tracker:uri-is-descendant('%s', ?url)", location_uri);
+ /* STRSTARTS is faster than tracker:uri-is-descendant().
+ * See https://gitlab.gnome.org/GNOME/tracker/-/issues/243
+ */
+ g_string_append_printf (sparql, "STRSTARTS(?url, '%s/')", location_uri);
}
date_range = nautilus_query_get_date_range (tracker->query);