------------------------------------------------------------ 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