=== modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java 2010-09-08 05:46:03 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java 2010-09-17 03:44:03 +0000 @@ -11,6 +11,7 @@ import org.hisp.dhis.databrowser.DataBrowserStore; import org.hisp.dhis.databrowser.DataBrowserTable; import org.hisp.dhis.organisationunit.OrganisationUnitService; +import org.hisp.dhis.sqlview.SqlViewService; import org.hisp.dhis.system.util.TimeUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +32,13 @@ private OrganisationUnitService organisationUnitService; + private SqlViewService sqlViewService; + + public void setSqlViewService( SqlViewService sqlViewService ) + { + this.sqlViewService = sqlViewService; + } + public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) { this.organisationUnitService = organisationUnitService; @@ -535,7 +543,7 @@ Integer numResults = 0; StringBuffer sqlsbDescentdants = new StringBuffer(); - dropView( "view_count_descentdants" ); + sqlViewService.dropViewTable( "view_count_descentdants" ); sqlsbDescentdants.append( "CREATE VIEW view_count_descentdants AS " ); setUpQueryForDrillDownDescendants( sqlsbDescentdants, orgUnitParent, betweenPeriodIds, maxLevel ); @@ -565,9 +573,11 @@ throw new RuntimeException( "Failed to get aggregated data value", e ); } finally - { + { holder.close(); } + + sqlViewService.dropViewTable( "view_count_descentdants" ); return numResults; } @@ -692,8 +702,8 @@ sb .append( "SELECT DISTINCT o.organisationunitid AS parentid, o.name AS organisationunit, COUNT(value) as countdv_descendants, p.periodid AS periodid, p.startdate AS columnheader " ); sb.append( "FROM organisationunit o " ); - sb.append( "JOIN datavalue dv ON ( dv.sourceid = o.organisationunitid ) " ); - sb.append( "JOIN period p ON ( p.periodid = dv.periodid ) " ); + sb.append( "JOIN datavalue dv ON (dv.sourceid = o.organisationunitid) " ); + sb.append( "JOIN period p ON (dv.periodid = p.periodid) " ); sb.append( "WHERE o.parentid = '" + orgUnitSelected + "' " ); sb.append( "AND dv.periodid = '" + periodid + "' " ); sb.append( "GROUP BY o.organisationunitid, organisationunit, p.periodid, p.startdate " ); @@ -709,9 +719,9 @@ + orgIndex + ".name AS organisationunit, COUNT(value) as countdv_descendants, p.periodid AS periodid, p.startdate AS columnheader " ); sb.append( "FROM datavalue dv " ); - sb.append( "JOIN organisationunit ou ON ( ou.organisationunitid = dv.sourceid ) " ); + sb.append( "JOIN organisationunit ou ON (ou.organisationunitid = dv.sourceid) " ); this.setUpQueryForJOINTable( sb, diffLevel ); - sb.append( "JOIN period p ON ( p.periodid = dv.periodid ) " ); + sb.append( "JOIN period p ON (dv.periodid = p.periodid) " ); sb.append( "WHERE dv.periodid = '" + periodid + "' " ); sb.append( "AND dv.sourceid IN " ); sb.append( "( " ); @@ -771,22 +781,4 @@ return (index == 0) ? "" : index + ""; } - - private void dropView( String view ) - { - final StatementHolder holder = statementManager.getHolder(); - - try - { - holder.getStatement().executeUpdate( "DROP VIEW IF EXISTS " + view ); - } - catch ( SQLException ex ) - { - throw new RuntimeException( "Failed to drop view: " + view, ex ); - } - finally - { - holder.close(); - } - } } === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-administration/src/main/resources/META-INF/dhis/beans.xml 2010-08-25 06:53:37 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/resources/META-INF/dhis/beans.xml 2010-09-17 03:44:03 +0000 @@ -84,6 +84,8 @@ class="org.hisp.dhis.databrowser.jdbc.StatementManagerDataBrowserStore"> +