From 03fb434e5981100fdc03a32634778a4b36af9935 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Thu, 12 Nov 2009 21:46:14 +0000 Subject: [PATCH] BUGFIX MigrateSiteTreeLinkingTask returns duplicate results from databases like MSSQL - remove any duplicates that may be around (from r91418) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@91477 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- tasks/MigrateSiteTreeLinkingTask.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tasks/MigrateSiteTreeLinkingTask.php b/tasks/MigrateSiteTreeLinkingTask.php index ff855ea9a..fd156b0f8 100755 --- a/tasks/MigrateSiteTreeLinkingTask.php +++ b/tasks/MigrateSiteTreeLinkingTask.php @@ -15,13 +15,17 @@ class MigrateSiteTreeLinkingTask extends BuildTask { $pages = 0; $links = 0; - $linkedPages = DataObject::get ( + $linkedPages = DataObject::get( 'SiteTree', null, null, 'INNER JOIN "SiteTree_LinkTracking" ON "SiteTree_LinkTracking"."SiteTreeID" = "SiteTree"."ID"' ); + // Databases like MSSQL will give duplicate results - remove them + // This would normally be fixed by using SELECT DISTINCT, but DataObject::get() doesn't support it + $linkedPages->removeDuplicates(); + if($linkedPages) foreach($linkedPages as $page) { $tracking = DB::query(sprintf ( 'SELECT "ChildID", "FieldName" FROM "SiteTree_LinkTracking" WHERE "SiteTreeID" = %d',