[tracker/wip/carlosg/sparql1.1: 72/113] 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: 72/113] libtracker-data: Pass explicitly URI prefix to SparqlUUID
- Date: Sun, 21 Jul 2019 14:35:16 +0000 (UTC)
commit bfc6ac4f2b9e64bc4ac0b7c0df2700f337a9289b
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 073823508..872be2979 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 f5a89f615..c10eade24 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -7369,9 +7369,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);
@@ -7389,11 +7389,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]