dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #34538
[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 ) );