[tracker/wip/carlosg/sparql1.1: 146/201] libtracker-data: Pass explicitly URI prefix to SparqlUUID
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/sparql1.1: 146/201] libtracker-data: Pass explicitly URI prefix to SparqlUUID
- Date: Mon, 9 Sep 2019 22:31:05 +0000 (UTC)
commit 215e3855de9e340567e74fefaa76b49e12a7e626
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jul 7 20:16:27 2019 +0200
libtracker-data: Pass explicitly URI prefix to SparqlUUID
Allows STRUUID to be implemented without hacks to remove the unused
URI prefix.
src/libtracker-data/tracker-db-interface-sqlite.c | 9 ++++++---
src/libtracker-data/tracker-sparql.c | 8 ++++----
2 files changed, 10 insertions(+), 7 deletions(-)
---
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c
b/src/libtracker-data/tracker-db-interface-sqlite.c
index 14f7d83ab..0c40a23ba 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -1773,12 +1773,15 @@ function_sparql_uuid (sqlite3_context *context,
int argc,
sqlite3_value *argv[])
{
- if (argc > 0) {
+ const gchar *prefix;
+
+ if (argc > 1) {
sqlite3_result_error (context, "Invalid argument count", -1);
return;
}
- generate_uuid (context, "urn:uuid");
+ prefix = sqlite3_value_text (argv[0]);
+ generate_uuid (context, prefix);
}
static void
@@ -1878,7 +1881,7 @@ initialize_functions (TrackerDBInterface *db_interface)
{ "SparqlDataType", 1, SQLITE_ANY | SQLITE_DETERMINISTIC,
function_sparql_data_type },
/* UUID */
- { "SparqlUUID", 0, SQLITE_ANY, function_sparql_uuid },
+ { "SparqlUUID", 1, SQLITE_ANY, function_sparql_uuid },
{ "SparqlBNODE", -1, SQLITE_ANY | SQLITE_DETERMINISTIC, function_sparql_bnode },
};
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 2f8895742..4a0defbce 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -7378,9 +7378,9 @@ translate_BuiltInCall (TrackerSparql *sparql,
sparql->current_state.expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_BNODE)) {
if (_accept (sparql, RULE_TYPE_TERMINAL, TERMINAL_TYPE_NIL)) {
- _append_string (sparql, "SparqlUUID() ");
+ _append_string (sparql, "SparqlUUID(\"urn:bnode\") ");
} else {
- _append_string (sparql, "SparqlBNODE( ");
+ _append_string (sparql, "SparqlBNODE(");
_expect (sparql, RULE_TYPE_LITERAL, LITERAL_OPEN_PARENS);
_call_rule (sparql, NAMED_RULE_Expression, error);
_expect (sparql, RULE_TYPE_LITERAL, LITERAL_CLOSE_PARENS);
@@ -7398,11 +7398,11 @@ translate_BuiltInCall (TrackerSparql *sparql,
sparql->current_state.expression_type = TRACKER_PROPERTY_TYPE_DATETIME;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_UUID)) {
_expect (sparql, RULE_TYPE_TERMINAL, TERMINAL_TYPE_NIL);
- _append_string (sparql, "SparqlUUID() ");
+ _append_string (sparql, "SparqlUUID(\"urn:uuid\") ");
sparql->current_state.expression_type = TRACKER_PROPERTY_TYPE_STRING;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_STRUUID)) {
_expect (sparql, RULE_TYPE_TERMINAL, TERMINAL_TYPE_NIL);
- _append_string (sparql, "SUBSTR(SparqlUUID(), 10) ");
+ _append_string (sparql, "SparqlUUID() ");
sparql->current_state.expression_type = TRACKER_PROPERTY_TYPE_STRING;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_CONCAT)) {
sparql->current_state.convert_to_string = TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]