[banshee] Use CROSS JOINs to force join order (bgo#581103)
- From: Alexander Kojevnikov <alexk src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [banshee] Use CROSS JOINs to force join order (bgo#581103)
- Date: Sun, 27 Dec 2009 02:24:42 +0000 (UTC)
commit f89c9e094ee90bccd2e6864d226ef319e4a77a32
Author: Alexander Kojevnikov <alexander kojevnikov com>
Date: Sun Dec 27 13:22:02 2009 +1100
Use CROSS JOINs to force join order (bgo#581103)
.../DatabaseTrackListModel.cs | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
index 2e72d2e..5e4c47c 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
@@ -200,7 +200,18 @@ namespace Banshee.Collection.Database
private string from;
protected string From {
- get { return from ?? provider.From; }
+ get {
+ if (from == null) {
+ from = provider.From;
+ int i = from.IndexOf (',');
+ if (i > 0) {
+ // Force the join order to fix bgo#581103 and bgo#603661
+ // See section 5.2 in http://www.sqlite.org/optoverview.html
+ from = from.Substring (0, i) + " CROSS JOIN " + from.Substring (i + 1);
+ }
+ }
+ return from;
+ }
set { from = value; }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]