diff options
-rw-r--r-- | src/libtracker-data/tracker-sparql.c | 9 | ||||
-rw-r--r-- | tests/libtracker-fts/input/fts3input-1.out | 1 | ||||
-rw-r--r-- | tests/libtracker-fts/input/fts3input-1.rq | 1 | ||||
-rw-r--r-- | tests/libtracker-fts/input/fts3input-2.out | 1 | ||||
-rw-r--r-- | tests/libtracker-fts/input/fts3input-2.rq | 1 | ||||
-rw-r--r-- | tests/libtracker-fts/input/fts3input-3.out | 2 | ||||
-rw-r--r-- | tests/libtracker-fts/input/fts3input-3.rq | 1 | ||||
-rw-r--r-- | tests/libtracker-fts/input/fts3input-data.rq | 4 | ||||
-rw-r--r-- | tests/libtracker-fts/limits/fts3limits-2.out | 5 | ||||
-rw-r--r-- | tests/libtracker-fts/limits/fts3limits-2.rq | 2 | ||||
-rw-r--r-- | tests/libtracker-fts/limits/fts3limits-4.out | 6 | ||||
-rw-r--r-- | tests/libtracker-fts/limits/fts3limits-4.rq | 2 | ||||
-rw-r--r-- | tests/libtracker-fts/tracker-fts-test.c | 1 |
13 files changed, 31 insertions, 5 deletions
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c index e55795a2b..7219ce09a 100644 --- a/src/libtracker-data/tracker-sparql.c +++ b/src/libtracker-data/tracker-sparql.c @@ -1482,10 +1482,11 @@ tracker_sparql_add_fts_subquery (TrackerSparql *sparql, if (tracker_sparql_find_graph (sparql, tracker_token_get_idstring (graph))) { _append_string_printf (sparql, "%s FROM \"%s\".\"fts5\" " - "WHERE fts5 = ", + "WHERE fts5 = '\"' || REPLACE (", select_items->str, tracker_token_get_idstring (graph)); _append_literal_sql (sparql, binding); + _append_string (sparql, ", '\"', ' ') || '\"*'"); } else { _append_empty_select (sparql, n_properties); } @@ -1497,9 +1498,10 @@ tracker_sparql_add_fts_subquery (TrackerSparql *sparql, if (!sparql->policy.filter_unnamed_graph) { _append_string_printf (sparql, "%s, 0 FROM \"main\".\"fts5\" " - "WHERE fts5 = ", + "WHERE fts5 = '\"' || REPLACE (", select_items->str); _append_literal_sql (sparql, binding); + _append_string (sparql, ", '\"', ' ') || '\"*'"); } else { _append_empty_select (sparql, n_properties); } @@ -1511,11 +1513,12 @@ tracker_sparql_add_fts_subquery (TrackerSparql *sparql, _append_string_printf (sparql, "UNION ALL %s, %d AS graph " "FROM \"%s\".\"fts5\" " - "WHERE fts5 = ", + "WHERE fts5 = '\"' || REPLACE (", select_items->str, GPOINTER_TO_INT (graph_id), (gchar *) graph_name); _append_literal_sql (sparql, binding); + _append_string (sparql, ", '\"', ' ') || '\"*'"); } } diff --git a/tests/libtracker-fts/input/fts3input-1.out b/tests/libtracker-fts/input/fts3input-1.out new file mode 100644 index 000000000..db6765d23 --- /dev/null +++ b/tests/libtracker-fts/input/fts3input-1.out @@ -0,0 +1 @@ +"http://www.example.org/test#1" diff --git a/tests/libtracker-fts/input/fts3input-1.rq b/tests/libtracker-fts/input/fts3input-1.rq new file mode 100644 index 000000000..8d6c237fb --- /dev/null +++ b/tests/libtracker-fts/input/fts3input-1.rq @@ -0,0 +1 @@ +SELECT ?u { ?u fts:match "abc.def" } diff --git a/tests/libtracker-fts/input/fts3input-2.out b/tests/libtracker-fts/input/fts3input-2.out new file mode 100644 index 000000000..db6765d23 --- /dev/null +++ b/tests/libtracker-fts/input/fts3input-2.out @@ -0,0 +1 @@ +"http://www.example.org/test#1" diff --git a/tests/libtracker-fts/input/fts3input-2.rq b/tests/libtracker-fts/input/fts3input-2.rq new file mode 100644 index 000000000..de51c164b --- /dev/null +++ b/tests/libtracker-fts/input/fts3input-2.rq @@ -0,0 +1 @@ +SELECT ?u { ?u fts:match 'abc def' } diff --git a/tests/libtracker-fts/input/fts3input-3.out b/tests/libtracker-fts/input/fts3input-3.out new file mode 100644 index 000000000..4025328ab --- /dev/null +++ b/tests/libtracker-fts/input/fts3input-3.out @@ -0,0 +1,2 @@ +"http://www.example.org/test#1" +"http://www.example.org/test#2" diff --git a/tests/libtracker-fts/input/fts3input-3.rq b/tests/libtracker-fts/input/fts3input-3.rq new file mode 100644 index 000000000..56fb9ef4c --- /dev/null +++ b/tests/libtracker-fts/input/fts3input-3.rq @@ -0,0 +1 @@ +SELECT ?u { ?u fts:match '"abc"' } diff --git a/tests/libtracker-fts/input/fts3input-data.rq b/tests/libtracker-fts/input/fts3input-data.rq new file mode 100644 index 000000000..761884b10 --- /dev/null +++ b/tests/libtracker-fts/input/fts3input-data.rq @@ -0,0 +1,4 @@ +INSERT { + test:1 a test:A ; test:p "abc.def" . + test:2 a test:A ; test:p "\"abc\" \"hij\"" . +} diff --git a/tests/libtracker-fts/limits/fts3limits-2.out b/tests/libtracker-fts/limits/fts3limits-2.out index cde9bcaf1..d235e926c 100644 --- a/tests/libtracker-fts/limits/fts3limits-2.out +++ b/tests/libtracker-fts/limits/fts3limits-2.out @@ -1 +1,6 @@ "http://www.example.org/test#2" +"http://www.example.org/test#3" +"http://www.example.org/test#4" +"http://www.example.org/test#5" +"http://www.example.org/test#6" +"http://www.example.org/test#8" diff --git a/tests/libtracker-fts/limits/fts3limits-2.rq b/tests/libtracker-fts/limits/fts3limits-2.rq index edd03488f..a6046e583 100644 --- a/tests/libtracker-fts/limits/fts3limits-2.rq +++ b/tests/libtracker-fts/limits/fts3limits-2.rq @@ -1 +1 @@ -SELECT ?o WHERE { ?o fts:match "tr" } +SELECT ?o WHERE { ?o fts:match "tr" } ORDER BY ?o diff --git a/tests/libtracker-fts/limits/fts3limits-4.out b/tests/libtracker-fts/limits/fts3limits-4.out index cde9bcaf1..f18d2cd0b 100644 --- a/tests/libtracker-fts/limits/fts3limits-4.out +++ b/tests/libtracker-fts/limits/fts3limits-4.out @@ -1 +1,7 @@ "http://www.example.org/test#2" +"http://www.example.org/test#3" +"http://www.example.org/test#4" +"http://www.example.org/test#5" +"http://www.example.org/test#6" +"http://www.example.org/test#8" +"http://www.example.org/test#9" diff --git a/tests/libtracker-fts/limits/fts3limits-4.rq b/tests/libtracker-fts/limits/fts3limits-4.rq index 31cbc5003..4b2a92b2e 100644 --- a/tests/libtracker-fts/limits/fts3limits-4.rq +++ b/tests/libtracker-fts/limits/fts3limits-4.rq @@ -1 +1 @@ -SELECT ?o WHERE { ?o fts:match "pr" } +SELECT ?o WHERE { ?o fts:match "pr" } ORDER BY ?o diff --git a/tests/libtracker-fts/tracker-fts-test.c b/tests/libtracker-fts/tracker-fts-test.c index 584609bff..edac25010 100644 --- a/tests/libtracker-fts/tracker-fts-test.c +++ b/tests/libtracker-fts/tracker-fts-test.c @@ -40,6 +40,7 @@ const TestInfo tests[] = { { "fts3ae", 1 }, { "prefix/fts3prefix", 3 }, { "limits/fts3limits", 4 }, + { "input/fts3input", 3 }, { NULL } }; |