Skip to content

Commit adec9ba

Browse files
authored
fix: missing backport of Tracker event query is slow (#20218)
1 parent c6213d6 commit adec9ba

File tree

1 file changed

+5
-7
lines changed
  • dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/tracker/export/event

1 file changed

+5
-7
lines changed

dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/tracker/export/event/JdbcEventStore.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -526,9 +526,9 @@ private String getEventSelectIdentifiersByIdScheme(EventQueryParams params) {
526526
sqlBuilder.append(
527527
getIdSqlBasedOnIdScheme(
528528
idSchemes.getCategoryOptionComboIdScheme(),
529-
"coc.uid as coc_identifier, ",
530-
"coc.attributevalues #>> '{%s, value}' as coc_identifier, ",
531-
"coc.code as coc_identifier, "));
529+
"coc_agg.uid as coc_identifier, ",
530+
"coc_agg.attributevalues #>> '{%s, value}' as coc_identifier, ",
531+
"coc_agg.code as coc_identifier, "));
532532

533533
return sqlBuilder.toString();
534534
}
@@ -797,7 +797,7 @@ private String getEventSelectQuery(
797797
.append("au.username as ")
798798
.append(COLUMN_EVENT_ASSIGNED_USER_USERNAME)
799799
.append(",")
800-
.append("coc.uid as ")
800+
.append("coc_agg.uid as ")
801801
.append(COLUMN_EVENT_ATTRIBUTE_OPTION_COMBO_UID)
802802
.append(", ")
803803
.append("coc_agg.co_uids AS co_uids, ")
@@ -1501,13 +1501,11 @@ private String addLastUpdatedFilters(
15011501
*/
15021502
private String getCategoryOptionComboQuery(User user) {
15031503
String joinCondition =
1504-
"inner join categoryoptioncombo coc on coc.categoryoptioncomboid = ev.attributeoptioncomboid "
1505-
+ " inner join lateral (select coc.categoryoptioncomboid as id,"
1504+
" inner join (select coc.uid, coc.attributevalues, coc.code, coc.categoryoptioncomboid as id,"
15061505
+ " string_agg(co.uid, ',') as co_uids, count(co.categoryoptionid) as co_count"
15071506
+ " from categoryoptioncombo coc "
15081507
+ " inner join categoryoptioncombos_categoryoptions cocco on coc.categoryoptioncomboid = cocco.categoryoptioncomboid"
15091508
+ " inner join categoryoption co on cocco.categoryoptionid = co.categoryoptionid"
1510-
+ " where ev.attributeoptioncomboid = coc.categoryoptioncomboid"
15111509
+ " group by coc.categoryoptioncomboid ";
15121510

15131511
if (!isSuper(user)) {

0 commit comments

Comments
 (0)