=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryPlanner.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryPlanner.java 2014-08-25 12:20:56 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryPlanner.java 2014-09-29 08:32:57 +0000 @@ -56,7 +56,7 @@ EventQueryParams planEventQuery( EventQueryParams params ); /** - * Returns the max number of records to return. + * Returns the max number of records to return. A value of 0 indicates no limit. */ int getMaxLimit(); } === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2014-09-24 13:47:50 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2014-09-29 08:32:57 +0000 @@ -178,7 +178,7 @@ analyticsManager.getAggregatedEventData( query, grid, maxLimit ); } - if ( grid.getHeight() > maxLimit ) + if ( maxLimit > 0 && grid.getHeight() > maxLimit ) { throw new IllegalQueryException( "Number of rows produced by query is larger than the max limit: " + maxLimit ); } === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2014-08-25 12:20:56 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2014-09-29 08:32:57 +0000 @@ -128,7 +128,7 @@ violation = "Page size must be zero or positive: " + params.getPageSize(); } - if ( params.hasLimit() && params.getLimit() > getMaxLimit() ) + if ( params.hasLimit() && getMaxLimit() > 0 && params.getLimit() > getMaxLimit() ) { violation = "Limit of: " + params.getLimit() + " is larger than max limit: " + getMaxLimit(); } === 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-08-25 10:18:10 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2014-09-29 08:32:57 +0000 @@ -124,7 +124,7 @@ { sql += "limit " + params.getLimit(); } - else + else if ( maxLimit > 0 ) { sql += "limit " + ( maxLimit + 1 ); } @@ -223,7 +223,7 @@ { sql += "limit " + params.getPageSizeWithDefault() + " offset " + params.getOffset(); } - else + else if ( maxLimit > 0 ) { sql += "limit " + ( maxLimit + 1 ); }