[tracker] SPARQL: Use parameters in SQL for LIMIT and OFFSET
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] SPARQL: Use parameters in SQL for LIMIT and OFFSET
- Date: Mon, 10 Aug 2009 08:42:06 +0000 (UTC)
commit 91104ed4791c26bbf81d3def9e184cfd68c52876
Author: Jürg Billeter <j bitron ch>
Date: Mon Aug 10 10:41:00 2009 +0200
SPARQL: Use parameters in SQL for LIMIT and OFFSET
Directly embedding integers in SQL statement enlargens statement cache
unnecessarily.
src/libtracker-data/tracker-sparql-query.vala | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 0fe1522..3ed17d6 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -528,12 +528,28 @@ public class Tracker.SparqlQuery : Object {
// LIMIT and OFFSET
if (query.get_limit () >= 0) {
- sql.append_printf (" LIMIT %d", query.get_limit ());
+ sql.append (" LIMIT ?");
+
+ var binding = new LiteralBinding ();
+ binding.literal = query.get_limit ().to_string ();
+ binding.literal_type = Rasqal.Literal.Type.INTEGER;
+ bindings.append (binding);
+
if (query.get_offset () >= 0) {
- sql.append_printf (" OFFSET %d", query.get_offset ());
+ sql.append (" OFFSET ?");
+
+ binding = new LiteralBinding ();
+ binding.literal = query.get_offset ().to_string ();
+ binding.literal_type = Rasqal.Literal.Type.INTEGER;
+ bindings.append (binding);
}
} else if (query.get_offset () >= 0) {
- sql.append_printf (" LIMIT -1 OFFSET %d", query.get_offset ());
+ sql.append (" LIMIT -1 OFFSET ?");
+
+ var binding = new LiteralBinding ();
+ binding.literal = query.get_offset ().to_string ();
+ binding.literal_type = Rasqal.Literal.Type.INTEGER;
+ bindings.append (binding);
}
return exec_sql (sql.str);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]