Skip to content

Commit

Permalink
Repeat SQL where clause for GetTransactionStream to ensure Postgres q…
Browse files Browse the repository at this point in the history
…uery optimizer picks up appropriate index correctly
  • Loading branch information
krzlabrdx committed Jul 28, 2023
1 parent a9b54e1 commit 5044ea3
Showing 1 changed file with 6 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ public async Task<TransactionPageWithoutTotal> GetTransactionStream(TransactionS
.Join(_dbContext.LedgerTransactionMarkers, sv => sv, ltm => ltm.StateVersion, (sv, ltm) => ltm)
.OfType<ManifestAddressLedgerTransactionMarker>()
.Where(maltm => maltm.OperationType == LedgerTransactionMarkerOperationType.AccountDepositedInto && maltm.EntityId == entityId)
.Where(maltm => maltm.StateVersion <= upperStateVersion && maltm.StateVersion >= (lowerStateVersion ?? maltm.StateVersion))
.Select(maltm => maltm.StateVersion);
}
}
Expand All @@ -164,6 +165,7 @@ public async Task<TransactionPageWithoutTotal> GetTransactionStream(TransactionS
.Join(_dbContext.LedgerTransactionMarkers, sv => sv, ltm => ltm.StateVersion, (sv, ltm) => ltm)
.OfType<ManifestAddressLedgerTransactionMarker>()
.Where(maltm => maltm.OperationType == LedgerTransactionMarkerOperationType.AccountWithdrawnFrom && maltm.EntityId == entityId)
.Where(maltm => maltm.StateVersion <= upperStateVersion && maltm.StateVersion >= (lowerStateVersion ?? maltm.StateVersion))
.Select(maltm => maltm.StateVersion);
}
}
Expand All @@ -183,6 +185,7 @@ public async Task<TransactionPageWithoutTotal> GetTransactionStream(TransactionS
.Join(_dbContext.LedgerTransactionMarkers, sv => sv, ltm => ltm.StateVersion, (sv, ltm) => ltm)
.OfType<ManifestAddressLedgerTransactionMarker>()
.Where(maltm => maltm.OperationType == LedgerTransactionMarkerOperationType.ResourceInUse && maltm.EntityId == entityId)
.Where(maltm => maltm.StateVersion <= upperStateVersion && maltm.StateVersion >= (lowerStateVersion ?? maltm.StateVersion))
.Select(maltm => maltm.StateVersion);
}
}
Expand All @@ -200,6 +203,7 @@ public async Task<TransactionPageWithoutTotal> GetTransactionStream(TransactionS
.Join(_dbContext.LedgerTransactionMarkers, sv => sv, ltm => ltm.StateVersion, (sv, ltm) => ltm)
.OfType<AffectedGlobalEntityTransactionMarker>()
.Where(agetm => agetm.EntityId == entityId)
.Where(agetm => agetm.StateVersion <= upperStateVersion && agetm.StateVersion >= (lowerStateVersion ?? agetm.StateVersion))
.Select(agetm => agetm.StateVersion);
}
}
Expand Down Expand Up @@ -244,6 +248,7 @@ public async Task<TransactionPageWithoutTotal> GetTransactionStream(TransactionS
.Join(_dbContext.LedgerTransactionMarkers, sv => sv, ltm => ltm.StateVersion, (sv, ltm) => ltm)
.OfType<EventLedgerTransactionMarker>()
.Where(eltm => eltm.EventType == eventType && eltm.EntityId == (eventEmitterEntityId ?? eltm.EntityId) && eltm.ResourceEntityId == (eventResourceEntityId ?? eltm.ResourceEntityId))
.Where(eltm => eltm.StateVersion <= upperStateVersion && eltm.StateVersion >= (lowerStateVersion ?? eltm.StateVersion))
.Select(eltm => eltm.StateVersion);
}
}
Expand All @@ -269,6 +274,7 @@ public async Task<TransactionPageWithoutTotal> GetTransactionStream(TransactionS
.Join(_dbContext.LedgerTransactionMarkers, sv => sv, ltm => ltm.StateVersion, (sv, ltm) => ltm)
.OfType<OriginLedgerTransactionMarker>()
.Where(oltm => oltm.OriginType == originType)
.Where(oltm => oltm.StateVersion <= upperStateVersion && oltm.StateVersion >= (lowerStateVersion ?? oltm.StateVersion))
.Select(oltm => oltm.StateVersion);
}

Expand Down

0 comments on commit 5044ea3

Please sign in to comment.