From 309f76b5dfbb99f2cf7a322e06eebc7cbf3585d2 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba <31766075+ekigamba@users.noreply.github.com> Date: Fri, 7 Jul 2023 21:12:48 +0300 Subject: [PATCH] Change p2p fetch records query to fix slowness (#2554) Fixes #2536 Co-authored-by: Benjamin Mwalimu --- .../fhircore/engine/p2p/dao/BaseP2PTransferDao.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/p2p/dao/BaseP2PTransferDao.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/p2p/dao/BaseP2PTransferDao.kt index 959e2b6f10..f829b301d4 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/p2p/dao/BaseP2PTransferDao.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/p2p/dao/BaseP2PTransferDao.kt @@ -97,15 +97,15 @@ constructor( SELECT a.serializedResource FROM ResourceEntity a LEFT JOIN DateIndexEntity b - ON a.resourceType = b.resourceType AND a.resourceUuid = b.resourceUuid + ON a.resourceType = b.resourceType AND a.resourceUuid = b.resourceUuid AND b.index_name = "_lastUpdated" LEFT JOIN DateTimeIndexEntity c - ON a.resourceType = c.resourceType AND a.resourceUuid = c.resourceUuid - WHERE a.resourceUuid IN ( + ON a.resourceType = c.resourceType AND a.resourceUuid = c.resourceUuid AND c.index_name = "_lastUpdated" + WHERE a.resourceType = "${classType.newInstance().resourceType}" + AND a.resourceUuid IN ( SELECT resourceUuid FROM DateTimeIndexEntity - WHERE resourceType = '${classType.newInstance().resourceType}' AND index_name = '_lastUpdated' AND index_to >= ? + WHERE resourceType = "${classType.newInstance().resourceType}" AND index_name = "_lastUpdated" AND index_to >= ? ) - AND (b.index_name = '_lastUpdated' OR c.index_name = '_lastUpdated') - ORDER BY c.index_from ASC, a.id ASC + ORDER BY b.index_from ASC, c.index_from ASC LIMIT ? OFFSET ? """.trimIndent(), listOf(lastRecordUpdatedAt, batchSize, offset)