From c0419c5750b90de8e5563bfed57e9de266dafecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=E2=89=A1ZRS?= <12814349+LZRS@users.noreply.github.com> Date: Tue, 26 Nov 2024 03:45:24 +0300 Subject: [PATCH] Use referenceindexentity table as leftmost table for [rev]includes --- .../google/android/fhir/search/MoreSearch.kt | 8 ++-- .../google/android/fhir/search/SearchTest.kt | 40 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/engine/src/main/java/com/google/android/fhir/search/MoreSearch.kt b/engine/src/main/java/com/google/android/fhir/search/MoreSearch.kt index 7e11b3c812..923bdee9fe 100644 --- a/engine/src/main/java/com/google/android/fhir/search/MoreSearch.kt +++ b/engine/src/main/java/com/google/android/fhir/search/MoreSearch.kt @@ -147,8 +147,8 @@ internal fun Search.getRevIncludeQuery(includeIds: List): SearchQuery { val filterQuery = generateFilterQuery(it) """ SELECT rie.index_name, rie.index_value, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceUuid = rie.resourceUuid ${join.query} WHERE rie.resourceType = ? AND rie.index_name = ? AND rie.index_value IN ($uuidsString) @@ -210,8 +210,8 @@ internal fun Search.getIncludeQuery(includeIds: List): SearchQuery { val filterQuery = generateFilterQuery(it) """ SELECT rie.index_name, rie.resourceUuid, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceType||"/"||re.resourceId = rie.index_value ${join.query} WHERE rie.resourceType = ? AND rie.index_name = ? AND rie.resourceUuid IN ($uuidsString) diff --git a/engine/src/test/java/com/google/android/fhir/search/SearchTest.kt b/engine/src/test/java/com/google/android/fhir/search/SearchTest.kt index 6217a2eec2..28f6185e47 100644 --- a/engine/src/test/java/com/google/android/fhir/search/SearchTest.kt +++ b/engine/src/test/java/com/google/android/fhir/search/SearchTest.kt @@ -2188,8 +2188,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.resourceUuid, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceType||"/"||re.resourceId = rie.index_value WHERE rie.resourceType = ? AND rie.index_name = ? AND rie.resourceUuid IN (?, ?) AND re.resourceType = ? @@ -2231,8 +2231,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.resourceUuid, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceType||"/"||re.resourceId = rie.index_value WHERE rie.resourceType = ? AND rie.index_name = ? AND rie.resourceUuid IN (?, ?) AND re.resourceUuid IN ( @@ -2280,8 +2280,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.resourceUuid, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceType||"/"||re.resourceId = rie.index_value LEFT JOIN StringIndexEntity b ON re.resourceUuid = b.resourceUuid AND b.index_name = ? @@ -2340,8 +2340,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.resourceUuid, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceType||"/"||re.resourceId = rie.index_value LEFT JOIN StringIndexEntity b ON re.resourceUuid = b.resourceUuid AND b.index_name = ? @@ -2357,8 +2357,8 @@ class SearchTest { UNION ALL SELECT * FROM ( SELECT rie.index_name, rie.resourceUuid, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceType||"/"||re.resourceId = rie.index_value LEFT JOIN StringIndexEntity b ON re.resourceUuid = b.resourceUuid AND b.index_name = ? @@ -2410,8 +2410,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.index_value, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceUuid = rie.resourceUuid WHERE rie.resourceType = ? AND rie.index_name = ? AND rie.index_value IN (?, ?) AND re.resourceType = ? @@ -2449,8 +2449,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.index_value, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceUuid = rie.resourceUuid WHERE rie.resourceType = ? AND rie.index_name = ? AND rie.index_value IN (?, ?) AND re.resourceUuid IN ( @@ -2501,8 +2501,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.index_value, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceUuid = rie.resourceUuid LEFT JOIN DateIndexEntity b ON re.resourceUuid = b.resourceUuid AND b.index_name = ? @@ -2579,8 +2579,8 @@ class SearchTest { """ SELECT * FROM ( SELECT rie.index_name, rie.index_value, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceUuid = rie.resourceUuid LEFT JOIN DateIndexEntity b ON re.resourceUuid = b.resourceUuid AND b.index_name = ? @@ -2598,8 +2598,8 @@ class SearchTest { UNION ALL SELECT * FROM ( SELECT rie.index_name, rie.index_value, re.serializedResource - FROM ResourceEntity re - JOIN ReferenceIndexEntity rie + FROM ReferenceIndexEntity rie + JOIN ResourceEntity re ON re.resourceUuid = rie.resourceUuid LEFT JOIN DateIndexEntity b ON re.resourceUuid = b.resourceUuid AND b.index_name = ?