Skip to content

Commit 1eb2aa1

Browse files
fix: SQL typo in analytics export (#23897)
1 parent a143dec commit 1eb2aa1

2 files changed

Lines changed: 22 additions & 6 deletions

File tree

dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import static org.hisp.dhis.analytics.table.ColumnRegex.NUMERIC_REGEXP;
3434
import static org.hisp.dhis.analytics.table.model.AnalyticsValueType.FACT;
3535
import static org.hisp.dhis.analytics.table.util.PartitionUtils.getLatestTablePartition;
36+
import static org.hisp.dhis.commons.util.TextUtils.SPACE;
3637
import static org.hisp.dhis.commons.util.TextUtils.emptyIfTrue;
3738
import static org.hisp.dhis.commons.util.TextUtils.format;
3839
import static org.hisp.dhis.commons.util.TextUtils.replace;
@@ -413,20 +414,29 @@ where des.valuetype in (${valTypes}) \
413414
"startTime", toLongDate(params.getStartTime()),
414415
"deletedClause", sqlBuilder.isFalse("dv", "deleted"))));
415416

417+
sql.append(getStartEndDatesCondition(respectStartEndDates));
418+
419+
if (whereClause != null) {
420+
sql.append(" and " + whereClause + " ");
421+
}
422+
423+
invokeTimeAndLog(sql.toString(), "Populating table: '{}' {}", tableName, valueTypes);
424+
}
425+
426+
String getStartEndDatesCondition(boolean respectStartEndDates) {
427+
StringBuilder condition = new StringBuilder("");
428+
416429
if (respectStartEndDates) {
417-
sql.append(
430+
condition.append(SPACE);
431+
condition.append(
418432
"""
419433
and (aon.startdate is null or aon.startdate <= ps.startdate) \
420434
and (aon.enddate is null or aon.enddate >= ps.enddate) \
421435
and (con.startdate is null or con.startdate <= ps.startdate) \
422436
and (con.enddate is null or con.enddate >= ps.enddate)\s""");
423437
}
424438

425-
if (whereClause != null) {
426-
sql.append(" and " + whereClause + " ");
427-
}
428-
429-
invokeTimeAndLog(sql.toString(), "Populating table: '{}' {}", tableName, valueTypes);
439+
return condition.toString();
430440
}
431441

432442
/**

dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManagerTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,4 +372,10 @@ void testGetApprovalJoinClause() {
372372

373373
assertEquals(expected, subject.getApprovalJoinClause());
374374
}
375+
376+
@Test
377+
void testGetStartEndDatesCondition() {
378+
assertTrue(subject.getStartEndDatesCondition(false).isEmpty());
379+
assertTrue(subject.getStartEndDatesCondition(true).startsWith(" "));
380+
}
375381
}

0 commit comments

Comments
 (0)