← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 17703: Analytics table, using inner join with organisationunits instead of _orgunitstructure. Protects a...

 

------------------------------------------------------------
revno: 17703
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2014-12-15 19:08:16 +0100
message:
  Analytics table, using inner join with organisationunits instead of _orgunitstructure. Protects against situations where orgunitlevels have not been saved.
modified:
  dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java
  dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java
  dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.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-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java'
--- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java	2014-11-11 09:12:38 +0000
+++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java	2014-12-15 18:08:16 +0000
@@ -148,6 +148,8 @@
     {
         int maxLevel = organisationUnitService.getMaxOfOrganisationUnitLevels();
 
+        log.info( "Using " + maxLevel + " organisation unit levels for org unit structure table" );
+        
         resourceTableStore.createOrganisationUnitStructure( maxLevel );
 
         List<Object[]> batchArgs = new ArrayList<>();

=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java	2014-11-24 15:41:33 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java	2014-12-15 18:08:16 +0000
@@ -99,8 +99,9 @@
     public void update( Integer lastYears, TaskId taskId )
     {
         int processNo = getProcessNo();
+        int orgUnitLevelNo = organisationUnitService.getMaxOfOrganisationUnitLevels();
         
-        Clock clock = new Clock().startClock().logTime( "Starting update, no of processes: " + processNo );
+        Clock clock = new Clock().startClock().logTime( "Starting update, processes: " + processNo + ", org unit levels: " + orgUnitLevelNo );
         
         String validState = tableManager.validState();
         
@@ -113,7 +114,7 @@
         final List<AnalyticsTable> tables = tableManager.getTables( lastYears );
         
         clock.logTime( "Partition tables: " + tables + ", last years: " + lastYears );        
-        notifier.notify( taskId, "Creating analytics tables, processes: " + processNo );
+        notifier.notify( taskId, "Creating analytics tables, processes: " + processNo + ", org unit levels: " + orgUnitLevelNo );
         
         createTables( tables );
         

=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java	2014-11-24 15:19:53 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java	2014-12-15 18:08:16 +0000
@@ -213,12 +213,13 @@
             "left join _categoryoptiongroupsetstructure cogs on dv.attributeoptioncomboid=cogs.categoryoptioncomboid " +
             "left join _categorystructure dcs on dv.categoryoptioncomboid=dcs.categoryoptioncomboid " +
             "left join _categorystructure acs on dv.attributeoptioncomboid=acs.categoryoptioncomboid " +
+            "left join _periodstructure ps on dv.periodid=ps.periodid " +
             "left join _orgunitstructure ous on dv.sourceid=ous.organisationunitid " +
-            "left join _periodstructure ps on dv.periodid=ps.periodid " +
-            "left join dataelement de on dv.dataelementid=de.dataelementid " +
-            "left join _dataelementstructure des on de.dataelementid = des.dataelementid " +
-            "left join categoryoptioncombo co on dv.categoryoptioncomboid=co.categoryoptioncomboid " +
-            "left join period pe on dv.periodid=pe.periodid " +
+            "left join _dataelementstructure des on dv.dataelementid = des.dataelementid " +
+            "inner join dataelement de on dv.dataelementid=de.dataelementid " +
+            "inner join categoryoptioncombo co on dv.categoryoptioncomboid=co.categoryoptioncomboid " +
+            "inner join period pe on dv.periodid=pe.periodid " +
+            "inner join organisationunit ou on dv.sourceid=ou.organisationunitid " +
             "where de.valuetype = '" + valueType + "' " +
             "and de.domaintype = 'AGGREGATE' " +
             "and pe.startdate >= '" + start + "' " +
@@ -325,7 +326,7 @@
         
         String[] de = { quote( "de" ), "character(11) not null", "de.uid" };
         String[] co = { quote( "co" ), "character(11) not null", "co.uid" };
-        String[] ou = { quote( "ou" ), "character(11) not null", "ous.organisationunituid" };
+        String[] ou = { quote( "ou" ), "character(11) not null", "ou.uid" };
         String[] level = { quote( "level" ), "integer", "ous.level" };
         
         columns.addAll( Arrays.asList( de, co, ou, level ) );