Skip to content

Commit 1431387

Browse files
fix: SQL typo in analytics export (#23899)
1 parent 06de3ba commit 1431387

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
@@ -31,6 +31,7 @@
3131

3232
import static org.hisp.dhis.analytics.table.model.AnalyticsValueType.FACT;
3333
import static org.hisp.dhis.analytics.table.util.PartitionUtils.getLatestTablePartition;
34+
import static org.hisp.dhis.commons.util.TextUtils.SPACE;
3435
import static org.hisp.dhis.commons.util.TextUtils.emptyIfTrue;
3536
import static org.hisp.dhis.commons.util.TextUtils.format;
3637
import static org.hisp.dhis.commons.util.TextUtils.replace;
@@ -402,20 +403,29 @@ where des.valuetype in (${valTypes}) \
402403
"startTime", toLongDate(params.getStartTime()),
403404
"deletedClause", sqlBuilder.isFalse("dv", "deleted"))));
404405

406+
sql.append(getStartEndDatesCondition(respectStartEndDates));
407+
408+
if (whereClause != null) {
409+
sql.append(" and " + whereClause + " ");
410+
}
411+
412+
invokeTimeAndLog(sql.toString(), "Populating table: '{}' {}", tableName, valueTypes);
413+
}
414+
415+
String getStartEndDatesCondition(boolean respectStartEndDates) {
416+
StringBuilder condition = new StringBuilder("");
417+
405418
if (respectStartEndDates) {
406-
sql.append(
419+
condition.append(SPACE);
420+
condition.append(
407421
"""
408422
and (aon.startdate is null or aon.startdate <= ps.startdate) \
409423
and (aon.enddate is null or aon.enddate >= ps.enddate) \
410424
and (con.startdate is null or con.startdate <= ps.startdate) \
411425
and (con.enddate is null or con.enddate >= ps.enddate)\s""");
412426
}
413427

414-
if (whereClause != null) {
415-
sql.append(" and " + whereClause + " ");
416-
}
417-
418-
invokeTimeAndLog(sql.toString(), "Populating table: '{}' {}", tableName, valueTypes);
428+
return condition.toString();
419429
}
420430

421431
/**

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
@@ -350,4 +350,10 @@ void testGetApprovalJoinClause() {
350350

351351
assertEquals(expected, subject.getApprovalJoinClause());
352352
}
353+
354+
@Test
355+
void testGetStartEndDatesCondition() {
356+
assertTrue(subject.getStartEndDatesCondition(false).isEmpty());
357+
assertTrue(subject.getStartEndDatesCondition(true).startsWith(" "));
358+
}
353359
}

0 commit comments

Comments
 (0)