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-08-29 16:23:33 +0200
commit8e140fa69c9a8f304a148e7e967a69ff2d9fda17 (patch)
tree922cc01068848c9bd6343b2f05d70b31a47cdc4c
parentedc193f591c7b5eb00d8505e48fa500021bc8048 (diff)
downloadnautilus-8e140fa69c9a8f304a148e7e967a69ff2d9fda17.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);