[tracker] tracker-extract: Handle correctly empty insertions
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] tracker-extract: Handle correctly empty insertions
- Date: Tue, 4 Aug 2015 17:39:36 +0000 (UTC)
commit 60799ca301f036a212c0bb2e4ee148c83087ddfa
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue Aug 4 18:51:32 2015 +0200
tracker-extract: Handle correctly empty insertions
There may be files for which is valid to say "there's nothing to
extract here" without resorting to error paths, in that case we
must insert the dataSource, but skip the empty statements for the
file.
src/tracker-extract/tracker-extract-decorator.c | 40 +++++++++++++----------
1 files changed, 23 insertions(+), 17 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-decorator.c b/src/tracker-extract/tracker-extract-decorator.c
index 4f7f0db..9152e4e 100644
--- a/src/tracker-extract/tracker-extract-decorator.c
+++ b/src/tracker-extract/tracker-extract-decorator.c
@@ -161,25 +161,31 @@ decorator_save_info (TrackerSparqlBuilder *sparql,
tracker_sparql_builder_object_iri (sparql,
tracker_decorator_get_data_source (TRACKER_DECORATOR (decorator)));
- /* Add extracted metadata */
- str = g_strdup_printf ("<%s>", urn);
- tracker_sparql_builder_append (sparql, str);
- g_free (str);
-
builder = tracker_extract_info_get_metadata_builder (info);
- result = tracker_sparql_builder_get_result (builder);
- tracker_sparql_builder_append (sparql, result);
- /* Close graph and insert statement, insert where clause */
- tracker_sparql_builder_graph_close (sparql);
- tracker_sparql_builder_insert_close (sparql);
+ if (tracker_sparql_builder_get_length (builder) > 0) {
+ /* Add extracted metadata */
+ str = g_strdup_printf ("<%s>", urn);
+ tracker_sparql_builder_append (sparql, str);
+ g_free (str);
+
+ result = tracker_sparql_builder_get_result (builder);
+ tracker_sparql_builder_append (sparql, result);
- where = tracker_extract_info_get_where_clause (info);
+ /* Close graph and insert statement, insert where clause */
+ tracker_sparql_builder_graph_close (sparql);
+ tracker_sparql_builder_insert_close (sparql);
- if (where && *where) {
- tracker_sparql_builder_where_open (sparql);
- tracker_sparql_builder_append (sparql, where);
- tracker_sparql_builder_where_close (sparql);
+ where = tracker_extract_info_get_where_clause (info);
+
+ if (where && *where) {
+ tracker_sparql_builder_where_open (sparql);
+ tracker_sparql_builder_append (sparql, where);
+ tracker_sparql_builder_where_close (sparql);
+ }
+ } else {
+ tracker_sparql_builder_graph_close (sparql);
+ tracker_sparql_builder_insert_close (sparql);
}
/* Prepend/append pre/postupdate chunks */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]