From 1d807b016d8b4ddf71961ccbc036ec489b62f61c Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Wed, 19 Sep 2007 12:48:05 +0000
Subject: [PATCH] updates

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@6397 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 artemis_sqlmap/FeatureRelationship.xml | 71 +++++++++++++++++++++++---
 1 file changed, 64 insertions(+), 7 deletions(-)

diff --git a/artemis_sqlmap/FeatureRelationship.xml b/artemis_sqlmap/FeatureRelationship.xml
index 8da16d8d7..0d9c4b81f 100644
--- a/artemis_sqlmap/FeatureRelationship.xml
+++ b/artemis_sqlmap/FeatureRelationship.xml
@@ -49,11 +49,12 @@
 		<result property="featureRelationshipId" column="feature_relationship_id"/>
         <result property="featureBySubjectId" column="subject_id" 
 			                                  select="getLazyFeatureById" />
-        <result property="featureByObjectId"  column="object_id"
-			                                  select="getLazyFeatureNameAndTypeById" />
+        <!--<result property="featureByObjectId"  column="object_id"
+			                                  select="getLazyFeatureNameAndTypeById" />-->
+		<result property="featureByObjectId" resultMap="Feature.map-feature-name-lazy" />
         <result property="value" column="value" />
         <result property="rank" column="rank" />
-        <result property="cvTerm.name" column="name" />
+        <result property="cvTerm.name" column="fr_name" />
      </resultMap>	
 	     
      <!--  select feature_relationship -->
@@ -72,13 +73,69 @@
      </select>
 
 	<select id="getParentFeatureRelationship" resultMap="map-parent-relationship">
-       SELECT feature_relationship_id, subject_id, object_id, type_id, value, rank, cvterm.name
-       FROM feature_relationship
-	   LEFT JOIN cvterm ON cvterm_id=type_id
+       SELECT feature_relationship_id, subject_id, object_id, value, rank, 
+		      fr_cvterm.name AS fr_name, parent.uniquename, parent_cvterm.name AS name, parent.feature_id AS id
+       FROM feature_relationship AS fr
+	   LEFT JOIN cvterm AS fr_cvterm ON fr_cvterm.cvterm_id=fr.type_id
+	   LEFT JOIN feature AS parent  ON object_id=feature_id
+       LEFT JOIN cvterm AS parent_cvterm ON parent_cvterm.cvterm_id=parent.type_id
        WHERE subject_id=#subject_id# AND 
-		( cvterm.name='derives_from' OR cvterm.name='part_of' OR cvterm.name='proper_part_of' )
+		( fr_cvterm.name='derives_from' OR fr_cvterm.name='part_of' OR fr_cvterm.name='proper_part_of' )
+	 
+	<!--
+     SELECT feature_relationship_id, subject_id, object_id, value, rank,
+		     fr_cvterm.name AS fr_name, parent.uniquename, parent_cvterm.name, parent.feature_id AS id       
+      FROM feature_relationship AS fr     
+      LEFT JOIN cvterm AS fr_cvterm ON fr_cvterm.cvterm_id=fr.type_id     
+      LEFT JOIN feature AS parent  ON object_id=feature_id        
+      LEFT JOIN cvterm AS parent_cvterm ON parent_cvterm.cvterm_id=parent.type_id        
+      WHERE 
+		    ( subject_id=#subject_id# 
+		      AND (fr_cvterm.name='derives_from' OR fr_cvterm.name='part_of' OR fr_cvterm.name='proper_part_of') 
+		      AND (parent_cvterm.name='gene' OR  parent_cvterm.name='pseudogene'))
+         OR ( subject_id IN (SELECT object_id FROM feature_relationship AS fr2  
+                             LEFT JOIN cvterm AS fr2_cvterm ON fr2_cvterm.cvterm_id=fr2.type_id 
+                             WHERE subject_id=#subject_id#
+		                     AND (fr2_cvterm.name='derives_from' OR fr2_cvterm.name='part_of' OR fr2_cvterm.name='proper_part_of'))  
+              AND (fr_cvterm.name='derives_from' OR fr_cvterm.name='part_of' OR fr_cvterm.name='proper_part_of') 
+		      AND (parent_cvterm.name='gene' OR  parent_cvterm.name='pseudogene')) ;
+    -->
+	
      </select>
 	
+	<select id="getParentFeaturesByChildFeatureIds" resultMap="map-parent-relationship">
+	  SELECT feature_relationship_id, subject_id, object_id, value, rank,
+		     fr_cvterm.name AS fr_name, parent.uniquename, parent_cvterm.name AS name, parent.feature_id AS id       
+      FROM feature_relationship AS fr     
+      LEFT JOIN cvterm AS fr_cvterm ON fr_cvterm.cvterm_id=fr.type_id     
+      LEFT JOIN feature AS parent  ON object_id=feature_id        
+      LEFT JOIN cvterm AS parent_cvterm ON parent_cvterm.cvterm_id=parent.type_id        
+      WHERE 
+		    ( subject_id IN <iterate open="(" close=")" conjunction=","> $[]$ </iterate> 
+		      AND (fr_cvterm.name='derives_from' OR fr_cvterm.name='part_of' OR fr_cvterm.name='proper_part_of') )
+    </select>
+	
+	<!--
+    <select id="getGeneFeaturesByChildFeatureIds" resultMap="map-parent-relationship">
+	  SELECT feature_relationship_id, subject_id, object_id, value, rank,
+		     fr_cvterm.name AS fr_name, parent.uniquename, parent_cvterm.name AS name, parent.feature_id AS id       
+      FROM feature_relationship AS fr     
+      LEFT JOIN cvterm AS fr_cvterm ON fr_cvterm.cvterm_id=fr.type_id     
+      LEFT JOIN feature AS parent  ON object_id=feature_id        
+      LEFT JOIN cvterm AS parent_cvterm ON parent_cvterm.cvterm_id=parent.type_id        
+      WHERE 
+		    ( subject_id IN <iterate open="(" close=")" conjunction=","> $[]$ </iterate> 
+		      AND (fr_cvterm.name='derives_from' OR fr_cvterm.name='part_of' OR fr_cvterm.name='proper_part_of') 
+		      AND (parent_cvterm.name='gene' OR  parent_cvterm.name='pseudogene') )
+         OR ( subject_id IN (SELECT object_id FROM feature_relationship AS fr2  
+                             LEFT JOIN cvterm AS fr2_cvterm ON fr2_cvterm.cvterm_id=fr2.type_id 
+                             WHERE subject_id IN <iterate open="(" close=")" conjunction=","> $[]$ </iterate> 
+		                     AND (fr2_cvterm.name='derives_from' OR fr2_cvterm.name='part_of' OR fr2_cvterm.name='proper_part_of'))  
+              AND (fr_cvterm.name='derives_from' OR fr_cvterm.name='part_of' OR fr_cvterm.name='proper_part_of') 
+		      AND (parent_cvterm.name='gene' OR  parent_cvterm.name='pseudogene') ) ;
+    </select>
+	-->
+	
     <update id="updateFeatureRelationshipsForSubjectId" 
            parameterClass="FeatureRelationship">
       UPDATE feature_relationship
-- 
GitLab