From a29ca7e8e92570f14f82392872ccd6cb7f00325d Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Tue, 11 Dec 2012 22:53:03 +0000
Subject: [PATCH] [CCS-22/SP-398]: Genedata Performance Tuning Fix: Improve
 runtime of getImageMetadata() by detecting the zoom level entry in imaging
 database for physical and container image data sets.

SVN: 27911
---
 .../imaging/dataaccess/IImagingReadonlyQueryDAO.java   | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
index 274551f0f8a..7407e78929c 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
@@ -293,10 +293,16 @@ public interface IImagingReadonlyQueryDAO extends BaseQuery
     public List<ImgImageZoomLevelTransformationEnrichedDTO> findImageZoomLevelTransformations(
             long datasetId, long channelId, String transformationCode);
 
-    @Select(sql = "select * from IMAGE_ZOOM_LEVELS zoom where zoom.physical_dataset_perm_id = ?{1} and zoom.is_original")
+    @Select(sql = "  select * from IMAGE_ZOOM_LEVELS zoom where zoom.physical_dataset_perm_id = ?{1} and zoom.is_original "
+            + "UNION ALL"
+            + "  select zoom.* from IMAGE_ZOOM_LEVELS zoom left join image_data_sets data on data.id = zoom.container_dataset_id"
+            + "     where data.perm_id = ?{1} and zoom.is_original")
     public List<ImgImageZoomLevelDTO> listOriginalImageZoomLevelsByPermId(String datasetPermId);
 
-    @Select(sql = "select * from IMAGE_ZOOM_LEVELS zoom where zoom.physical_dataset_perm_id = ?{1} and not zoom.is_original")
+    @Select(sql = "select * from IMAGE_ZOOM_LEVELS zoom where zoom.physical_dataset_perm_id = ?{1} and not zoom.is_original "
+            + "UNION ALL"
+            + "  select zoom.* from IMAGE_ZOOM_LEVELS zoom left join image_data_sets data on data.id = zoom.container_dataset_id"
+            + "     where data.perm_id = ?{1} and not zoom.is_original")
     public List<ImgImageZoomLevelDTO> listThumbImageZoomLevelsByPermId(String datasetPermId);
 
     @Select(sql = "select * from ANALYSIS_DATA_SETS where PERM_ID = any(?{1})", parameterBindings =
-- 
GitLab