=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2014-04-21 14:52:46 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2014-05-06 15:50:09 +0000 @@ -269,7 +269,14 @@ { String sql = "select count(psi) "; - sql += getFromWhereClause( params, params.getPartitions().getSinglePartition() ); + if ( params.spansMultiplePartitions() ) + { + sql += getFromWhereMultiplePartitionsClause( params, Arrays.asList( "psi" ) ); + } + else + { + sql += getFromWhereClause( params, params.getPartitions().getSinglePartition() ); + } int count = 0; @@ -325,13 +332,11 @@ private String getFromWhereMultiplePartitionsClause( EventQueryParams params, List fixedColumns ) { - String fixedCols = getSelectString( fixedColumns ); - String sql = "from ("; for ( String partition : params.getPartitions().getPartitions() ) { - sql += "select " + fixedCols + getSelectColumns( params ); + sql += "select " + getSelectString( fixedColumns ) + getSelectColumns( params ); sql += " " + getFromWhereClause( params, partition ); @@ -441,6 +446,11 @@ */ private String getSelectString( List columns ) { + if ( columns == null || columns.isEmpty() ) + { + return ""; + } + String fixedCols = StringUtils.join( columns, ", " ); return StringUtils.defaultIfEmpty( fixedCols + ", ", fixedCols );