From bbffb240c2fd95226331b7d0794f0e89f44f2319 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Thu, 14 May 2009 15:37:17 +0000
Subject: [PATCH] changes to speed up getOrganismsContainingSrcFeatures

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@10812 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 artemis_sqlmap/Organism.xml               | 16 +++++++++-------
 uk/ac/sanger/artemis/chado/IBatisDAO.java |  2 +-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/artemis_sqlmap/Organism.xml b/artemis_sqlmap/Organism.xml
index 8b03b450a..96f608051 100644
--- a/artemis_sqlmap/Organism.xml
+++ b/artemis_sqlmap/Organism.xml
@@ -81,13 +81,15 @@
 	</select>
 	
 	<select id="getTopLevelOrganisms" resultMap="map-organism">
-	  SELECT DISTINCT ON( feature.organism_id )  
-		organism.organism_id AS organismId, abbreviation, genus, species, common_name AS commonName, comment
-		FROM feature 
-		join  organism using (organism_id) 
-		JOIN featureprop using (feature_id)
-		WHERE featureprop.type_id in 
-		  (SELECT cvterm_id FROM cvterm JOIN cv using (cv_id) WHERE cv.name = 'genedb_misc' AND cvterm.name = 'top_level_seq' ) 
+	  SELECT organism.organism_id AS organismId, abbreviation, genus, species, common_name AS commonName, comment
+      FROM organism
+      WHERE exists (
+        SELECT *
+        FROM organismprop
+        JOIN cvterm on organismprop.type_id = cvterm.cvterm_id
+        JOIN cv using (cv_id)
+        WHERE organism_id = organism.organism_id
+        AND cv.name = 'genedb_misc' and cvterm.name = 'populated' )
 	</select>	
  
 </sqlMap> 
diff --git a/uk/ac/sanger/artemis/chado/IBatisDAO.java b/uk/ac/sanger/artemis/chado/IBatisDAO.java
index 2da3faa42..2e9f1c99d 100644
--- a/uk/ac/sanger/artemis/chado/IBatisDAO.java
+++ b/uk/ac/sanger/artemis/chado/IBatisDAO.java
@@ -593,7 +593,7 @@ public class IBatisDAO extends GmodDAO
 
   public List getOrganismsContainingSrcFeatures()
   {
-    CvTerm cvTerm = getCvTermByNameAndCvName("top_level_seq", "genedb_misc");
+    CvTerm cvTerm = getCvTermByNameAndCvName("populated", "genedb_misc");
     if(cvTerm  != null)
       return sqlMap.queryForList("getTopLevelOrganisms", null);
     else  
-- 
GitLab