diff options
author | Sam Thursfield <sam@afuera.me.uk> | 2019-08-26 15:58:48 +0300 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2019-08-26 15:58:48 +0300 |
commit | 3c23ffa5eac724830aa4f3f70eba2e97fe13c3fa (patch) | |
tree | 056b24391869499d3a6440748300553ceb98f7db | |
parent | bdfe556478b5d09a6e5024a413cd1a52e721cc0a (diff) | |
download | tracker-3c23ffa5eac724830aa4f3f70eba2e97fe13c3fa.tar.gz |
libtracker-sparql: Warn when serializing a resource with 0 propertiessam/tracker-resource-avoid-invalid-sparql
We can't describe an RDF resource without knowing at least one property
about it. If we have 0 properties, it is due to a programmer error or
a bug. We now warn in this case, where previously we would just generate
invalid SPARQL and trigger an error further down the line.
-rw-r--r-- | src/libtracker-sparql/tracker-resource.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libtracker-sparql/tracker-resource.c b/src/libtracker-sparql/tracker-resource.c index 9c9fd53aa..9c504272c 100644 --- a/src/libtracker-sparql/tracker-resource.c +++ b/src/libtracker-sparql/tracker-resource.c @@ -1440,6 +1440,14 @@ generate_sparql_insert_pattern (TrackerResource *resource, const GValue *value; gboolean had_property = FALSE; + /* If the resource has no properties, this function would generate invalid + * SPARQL. */ + if (g_hash_table_size(priv->properties) == 0) { + g_warning("Resource with identifier %s has no properties. Unable to " + " serialize to SPARQL.", priv->identifier); + return; + } + /* First, emit any sub-resources. */ g_hash_table_foreach (priv->properties, generate_sparql_relation_inserts_foreach, data); |