=== modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/dataarchive/jdbc/JdbcDataArchiveStore.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/dataarchive/jdbc/JdbcDataArchiveStore.java 2010-05-18 18:37:07 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/dataarchive/jdbc/JdbcDataArchiveStore.java 2010-08-19 21:37:22 +0000 @@ -58,78 +58,79 @@ public void archiveData( Date startDate, Date endDate ) { - final String sql = - - // Move data from datavalue to datavaluearchive - + // Move data from datavalue to datavaluearchive + + String sql = "INSERT INTO datavaluearchive ( " + "SELECT d.* FROM datavalue AS d " + "JOIN period as p USING (periodid) " + "WHERE p.startdate>='" + getMediumDateString( startDate ) + "' " + - "AND p.enddate<='" + getMediumDateString( endDate ) + "' );" + - - // Delete data from datavalue - + "AND p.enddate<='" + getMediumDateString( endDate ) + "' );"; + + log.info( sql ); + jdbcTemplate.execute( sql ); + + // Delete data from datavalue + + sql = "DELETE FROM datavalue AS d " + "USING period as p " + "WHERE d.periodid=p.periodid " + "AND p.startdate>='" + getMediumDateString( startDate ) + "' " + "AND p.enddate<='" + getMediumDateString( endDate ) + "';"; - log.info( sql ); - + log.info( sql ); jdbcTemplate.execute( sql ); } public void unArchiveData( Date startDate, Date endDate ) { - final String sql = - - // Move data from datavalue to datavaluearchive - + // Move data from datavalue to datavaluearchive + + String sql = "INSERT INTO datavalue ( " + "SELECT a.* FROM datavaluearchive AS a " + "JOIN period as p USING (periodid) " + "WHERE p.startdate>='" + getMediumDateString( startDate ) + "' " + - "AND p.enddate<='" + getMediumDateString( endDate ) + "' );" + - - // Delete data from datavalue - + "AND p.enddate<='" + getMediumDateString( endDate ) + "' );"; + + log.info( sql ); + jdbcTemplate.execute( sql ); + + // Delete data from datavalue + + sql = "DELETE FROM datavaluearchive AS a " + "USING period AS p " + "WHERE a.periodid=p.periodid " + "AND p.startdate>='" + getMediumDateString( startDate ) + "' " + "AND p.enddate<='" + getMediumDateString( endDate ) + "';"; - log.info( sql ); - + log.info( sql ); jdbcTemplate.execute( sql ); } public int getNumberOfOverlappingValues() { - final String sql = + String sql = "SELECT COUNT(*) FROM datavaluearchive " + "JOIN datavalue USING (dataelementid, periodid, sourceid, categoryoptioncomboid);"; - log.info( sql ); - + log.info( sql ); return jdbcTemplate.queryForInt( sql ); } public int getNumberOfArchivedValues() { - final String sql = - "SELECT COUNT(*) FROM datavaluearchive;"; - - log.info( sql ); - + String sql = "SELECT COUNT(*) FROM datavaluearchive;"; + + log.info( sql ); return jdbcTemplate.queryForInt( sql ); } public void deleteRegularOverlappingData() { - final String sql = + String sql = "DELETE FROM datavalue AS d " + "USING datavaluearchive AS a " + "WHERE d.dataelementid=a.dataelementid " + @@ -137,14 +138,13 @@ "AND d.sourceid=a.sourceid " + "AND d.categoryoptioncomboid=a.categoryoptioncomboid;"; - log.info( sql ); - + log.info( sql ); jdbcTemplate.execute( sql ); } public void deleteArchivedOverlappingData() { - final String sql = + String sql = "DELETE FROM datavaluearchive AS a " + "USING datavalue AS d " + "WHERE a.dataelementid=d.dataelementid " + @@ -152,27 +152,29 @@ "AND a.sourceid=d.sourceid " + "AND a.categoryoptioncomboid=d.categoryoptioncomboid;"; - log.info( sql ); - + log.info( sql ); jdbcTemplate.execute( sql ); } public void deleteOldestOverlappingData() { - final String sql = - - // Delete overlaps from datavalue which are older than datavaluearchive - + // Delete overlaps from datavalue which are older than datavaluearchive + + String sql = "DELETE FROM datavalue AS d " + "USING datavaluearchive AS a " + "WHERE d.dataelementid=a.dataelementid " + "AND d.periodid=a.periodid " + "AND d.sourceid=a.sourceid " + "AND d.categoryoptioncomboid=a.categoryoptioncomboid " + - "AND d.lastupdated