[tracker] SPARQL: Always use parameter in SQL for resource IDs
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] SPARQL: Always use parameter in SQL for resource IDs
- Date: Mon, 10 Aug 2009 08:36:57 +0000 (UTC)
commit a27232300fe0d3501d3abb0977457c17760d81e4
Author: Jürg Billeter <j bitron ch>
Date: Mon Aug 10 10:32:44 2009 +0200
SPARQL: Always use parameter in SQL for resource IDs
Directly embedding integer in SQL statement enlargens statement cache
unnecessarily. Issue found by Tuukka Hastrup.
src/libtracker-data/tracker-sparql-query.vala | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index cb0801c..0fe1522 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -68,7 +68,7 @@ public class Tracker.SparqlQuery : Object {
public Class? domain;
- public string get_sql_query () throws Error {
+ public string get_sql_query (SparqlQuery query) throws Error {
var sql = new StringBuilder ();
if (subject != null) {
@@ -118,7 +118,12 @@ public class Tracker.SparqlQuery : Object {
sql.append_printf ("\"%s\"", prop.domain.name);
}
- sql.append_printf (" WHERE ID = %d", subject_id);
+ sql.append (" WHERE ID = ?");
+
+ var binding = new LiteralBinding ();
+ binding.literal = subject_id.to_string ();
+ binding.literal_type = Rasqal.Literal.Type.INTEGER;
+ query.bindings.append (binding);
}
}
} while (result_set.iter_next ());
@@ -677,7 +682,7 @@ public class Tracker.SparqlQuery : Object {
if (table.sql_db_tablename != null) {
pattern_sql.append_printf ("\"%s\"", table.sql_db_tablename);
} else {
- pattern_sql.append_printf ("(%s)", table.predicate_variable.get_sql_query ());
+ pattern_sql.append_printf ("(%s)", table.predicate_variable.get_sql_query (this));
}
pattern_sql.append_printf (" AS \"%s\"", table.sql_query_tablename);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]