------------------------------------------------------------
revno: 18982
committer: Lars Helge Overland <larshe...@gmail.com>
branch nick: dhis2
timestamp: Wed 2015-04-22 16:09:57 +0200
message:
  Added unique, composite index on dataapproval table. Provides database 
integrity in terms of duplicte dataapproval records, and improves approval 
query performance 20 x.
modified:
  
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableCreator.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to 
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableCreator.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableCreator.java	2015-04-21 18:32:37 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableCreator.java	2015-04-22 14:09:57 +0000
@@ -28,6 +28,8 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.hisp.dhis.aggregation.AggregatedDataValueService;
 import org.hisp.dhis.system.startup.AbstractStartupRoutine;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +41,8 @@
 public class TableCreator
     extends AbstractStartupRoutine
 {
+    private static final Log log = LogFactory.getLog( TableCreator.class );
+    
     // -------------------------------------------------------------------------
     // Dependencies
     // -------------------------------------------------------------------------
@@ -57,5 +61,21 @@
     public void execute()
     {
         aggregatedDataValueService.createDataMart();
+        
+        createSilently( "create unique index dataapproval_unique on dataapproval(datasetid,periodid,organisationunitid,attributeoptioncomboid,dataapprovallevelid)", "dataapproval_unique" );
+    }
+    
+    private void createSilently( final String sql, final String name )
+    {
+        try
+        {
+            jdbcTemplate.execute( sql );
+            
+            log.info( "Created table/index " + name );
+        }
+        catch ( Exception ex )
+        {
+            log.debug( "Table/index " + name + " exists" );
+        }
     }
 }

_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp

Reply via email to