[tracker] SPARQL: Use SQL UNION ALL instead of just UNION



commit d891e1221e40dfaae6b6ae6b8ac33eecbc8c03c6
Author: Jürg Billeter <j bitron ch>
Date:   Thu Jul 23 22:06:55 2009 +0200

    SPARQL: Use SQL UNION ALL instead of just UNION
    
    UNION without ALL implies DISTINCT, which can lead to bad performance.

 src/libtracker-data/tracker-sparql-query.vala |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 52ef798..1b5ff50 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -93,7 +93,7 @@ public class Tracker.SparqlQuery : Object {
 								if (first) {
 									first = false;
 								} else {
-									sql.append (" UNION ");
+									sql.append (" UNION ALL ");
 								}
 								sql.append_printf ("SELECT ID, (SELECT ID FROM \"rdfs:Resource\" WHERE Uri = '%s') AS \"predicate\", ", prop.uri);
 
@@ -145,7 +145,7 @@ public class Tracker.SparqlQuery : Object {
 								if (first) {
 									first = false;
 								} else {
-									sql.append (" UNION ");
+									sql.append (" UNION ALL ");
 								}
 								sql.append_printf ("SELECT ID, (SELECT ID FROM \"rdfs:Resource\" WHERE Uri = '%s') AS \"predicate\", ", prop.uri);
 
@@ -182,7 +182,7 @@ public class Tracker.SparqlQuery : Object {
 						if (first) {
 							first = false;
 						} else {
-							sql.append (" UNION ");
+							sql.append (" UNION ALL ");
 						}
 						sql.append_printf ("SELECT ID, (SELECT ID FROM \"rdfs:Resource\" WHERE Uri = '%s') AS \"predicate\", ", prop.uri);
 
@@ -776,7 +776,7 @@ public class Tracker.SparqlQuery : Object {
 				}
 
 				if (pattern_idx > 0) {
-					pattern_sql.append (" UNION ");
+					pattern_sql.append (" UNION ALL ");
 				}
 				visit_graph_pattern (sub_graph_pattern);
 			}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]