Skip to content

Commit b638192

Browse files
authored
Overlays integrate with mutations and queries, and migration (#9731)
1 parent 20daa45 commit b638192

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1758
-372
lines changed

Firestore/Example/Firestore.xcodeproj/project.pbxproj

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
06A3926F89C847846BE4D6BE /* http.pb.cc in Sources */ = {isa = PBXBuildFile; fileRef = 618BBE9720B89AAC00B5BCE7 /* http.pb.cc */; };
4747
06BCEB9C65DFAA142F3D3F0B /* view_testing.cc in Sources */ = {isa = PBXBuildFile; fileRef = A5466E7809AD2871FFDE6C76 /* view_testing.cc */; };
4848
072D805A94E767DE4D371881 /* FSTSyncEngineTestDriver.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E02E20213FFC00B64F25 /* FSTSyncEngineTestDriver.mm */; };
49+
076465DFEEEAA4CAF5A0595A /* leveldb_overlay_migration_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */; };
4950
077292C9797D97D3851F15CE /* leveldb_snappy_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9D94300B9C02F7069523C00 /* leveldb_snappy_test.cc */; };
5051
0794FACCB1C0C4881A76C28D /* value_util_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 40F9D09063A07F710811A84F /* value_util_test.cc */; };
5152
079E63E270F3EFCA175D2705 /* cc_compilation_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1B342370EAE3AA02393E33EB /* cc_compilation_test.cc */; };
@@ -140,6 +141,7 @@
140141
1989623826923A9D5A7EFA40 /* create_noop_connectivity_monitor.cc in Sources */ = {isa = PBXBuildFile; fileRef = CF39535F2C41AB0006FA6C0E /* create_noop_connectivity_monitor.cc */; };
141142
198F193BD9484E49375A7BE7 /* FSTHelpers.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E03A2021401F00B64F25 /* FSTHelpers.mm */; };
142143
199B778D5820495797E0BE02 /* filesystem_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F51859B394D01C0C507282F1 /* filesystem_test.cc */; };
144+
1A1299107EFF68DA9DAB19BD /* leveldb_overlay_migration_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */; };
143145
1B4794A51F4266556CD0976B /* view_snapshot_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = CC572A9168BBEF7B83E4BBC5 /* view_snapshot_test.cc */; };
144146
1B6E74BA33B010D76DB1E2F9 /* FIRGeoPointTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E048202154AA00B64F25 /* FIRGeoPointTests.mm */; };
145147
1B816F48012524939CA57CB3 /* user_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = CCC9BD953F121B9E29F9AA42 /* user_test.cc */; };
@@ -675,6 +677,7 @@
675677
6EDD3B4920BF247500C33877 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F5AF195388D20070C39A /* XCTest.framework */; };
676678
6EDD3B6020BF25AE00C33877 /* FSTFuzzTestsPrincipal.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6EDD3B5E20BF24D000C33877 /* FSTFuzzTestsPrincipal.mm */; };
677679
6EEA00A737690EF82A3C91C6 /* app_testing.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5467FB07203E6A44009C9584 /* app_testing.mm */; };
680+
6F256C06FCBA46378EC35D72 /* leveldb_overlay_migration_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */; };
678681
6F3CAC76D918D6B0917EDF92 /* query_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B9C261C26C5D311E1E3C0CB9 /* query_test.cc */; };
679682
6F45846C159D3C063DBD3CBE /* FirestoreEncoderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1235769422B86E65007DDFA9 /* FirestoreEncoderTests.swift */; };
680683
6F511ABFD023AEB81F92DB12 /* maybe_document.pb.cc in Sources */ = {isa = PBXBuildFile; fileRef = 618BBE7E20B89AAC00B5BCE7 /* maybe_document.pb.cc */; };
@@ -758,6 +761,7 @@
758761
8077722A6BB175D3108CDC55 /* leveldb_remote_document_cache_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 0840319686A223CC4AD3FAB1 /* leveldb_remote_document_cache_test.cc */; };
759762
80AB93C807F35539EEC510B2 /* leveldb_lru_garbage_collector_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B629525F7A1AAC1AB765C74F /* leveldb_lru_garbage_collector_test.cc */; };
760763
80D7FEBB1056E489F24C6C8F /* firebase_app_check_credentials_provider_test.mm in Sources */ = {isa = PBXBuildFile; fileRef = F119BDDF2F06B3C0883B8297 /* firebase_app_check_credentials_provider_test.mm */; };
764+
80D8B7D6FFFEA12AF10E4E2B /* leveldb_overlay_migration_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */; };
761765
814724DE70EFC3DDF439CD78 /* executor_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B6FB4688208F9B9100554BA2 /* executor_test.cc */; };
762766
816E8E62DC163649BA96951C /* EncodableFieldValueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1235769122B7E915007DDFA9 /* EncodableFieldValueTests.swift */; };
763767
81A6B241E63540900F205817 /* view_snapshot_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = CC572A9168BBEF7B83E4BBC5 /* view_snapshot_test.cc */; };
@@ -918,6 +922,7 @@
918922
A8AF92A35DFA30EEF9C27FB7 /* database_info_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB38D92E20235D22000A432D /* database_info_test.cc */; };
919923
A8C9FF6D13E6C83D4AB54EA7 /* secure_random_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54740A531FC913E500713A1A /* secure_random_test.cc */; };
920924
A907244EE37BC32C8D82948E /* FSTSpecTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E03020213FFC00B64F25 /* FSTSpecTests.mm */; };
925+
A9206FF8FF8834347E9C7DDB /* leveldb_overlay_migration_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */; };
921926
A97ED2BAAEDB0F765BBD5F98 /* local_store_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 307FF03D0297024D59348EBD /* local_store_test.cc */; };
922927
A9A9994FB8042838671E8506 /* view_snapshot_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = CC572A9168BBEF7B83E4BBC5 /* view_snapshot_test.cc */; };
923928
AA13B6E1EF0AD9E9857AAE1C /* byte_stream_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 432C71959255C5DBDF522F52 /* byte_stream_test.cc */; };
@@ -1254,6 +1259,7 @@
12541259
EECC1EC64CA963A8376FA55C /* persistence_testing.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9113B6F513D0473AEABBAF1F /* persistence_testing.cc */; };
12551260
EF3518F84255BAF3EBD317F6 /* exponential_backoff_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B6D1B68420E2AB1A00B35856 /* exponential_backoff_test.cc */; };
12561261
EF43FF491B9282E0330E4CA2 /* remote_event_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 584AE2C37A55B408541A6FF3 /* remote_event_test.cc */; };
1262+
EF4FB3034994E6386F3C78FF /* leveldb_overlay_migration_manager_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */; };
12571263
EF79998EBE4C72B97AB1880E /* value_util_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 40F9D09063A07F710811A84F /* value_util_test.cc */; };
12581264
EF8C005DC4BEA6256D1DBC6F /* user_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = CCC9BD953F121B9E29F9AA42 /* user_test.cc */; };
12591265
F05B277F16BDE6A47FE0F943 /* local_serializer_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F8043813A5D16963EC02B182 /* local_serializer_test.cc */; };
@@ -1707,6 +1713,7 @@
17071713
D5B2593BCB52957D62F1C9D3 /* perf_spec_test.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = perf_spec_test.json; sourceTree = "<group>"; };
17081714
D5B25E7E7D6873CBA4571841 /* FIRNumericTransformTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FIRNumericTransformTests.mm; sourceTree = "<group>"; };
17091715
D7DF4A6F740086A2D8C0E28E /* Pods_Firestore_Tests_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Firestore_Tests_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
1716+
D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; path = leveldb_overlay_migration_manager_test.cc; sourceTree = "<group>"; };
17101717
D9D94300B9C02F7069523C00 /* leveldb_snappy_test.cc */ = {isa = PBXFileReference; includeInIndex = 1; path = leveldb_snappy_test.cc; sourceTree = "<group>"; };
17111718
DAFF0CF521E64AC30062958F /* Firestore_Example_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Firestore_Example_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
17121719
DAFF0CF721E64AC30062958F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
@@ -2080,6 +2087,7 @@
20802087
EF83ACD5E1E9F25845A9ACED /* leveldb_migrations_test.cc */,
20812088
5C7942B6244F4C416B11B86C /* leveldb_mutation_queue_test.cc */,
20822089
75860CD13AF47EB1EA39EC2F /* leveldb_opener_test.cc */,
2090+
D8A6D52723B1BABE1B7B8D8F /* leveldb_overlay_migration_manager_test.cc */,
20832091
0840319686A223CC4AD3FAB1 /* leveldb_remote_document_cache_test.cc */,
20842092
D9D94300B9C02F7069523C00 /* leveldb_snappy_test.cc */,
20852093
E76F0CDF28E5FA62D21DE648 /* leveldb_target_cache_test.cc */,
@@ -3619,6 +3627,7 @@
36193627
7EAB3129A58368EE4BD449ED /* leveldb_migrations_test.cc in Sources */,
36203628
1D7919CD2A05C15803F5FE05 /* leveldb_mutation_queue_test.cc in Sources */,
36213629
23EFC681986488B033C2B318 /* leveldb_opener_test.cc in Sources */,
3630+
076465DFEEEAA4CAF5A0595A /* leveldb_overlay_migration_manager_test.cc in Sources */,
36223631
F10A3E4E164A5458DFF7EDE6 /* leveldb_remote_document_cache_test.cc in Sources */,
36233632
7C1DC1B44729381126D083AE /* leveldb_snappy_test.cc in Sources */,
36243633
7D40C8EB7755138F85920637 /* leveldb_target_cache_test.cc in Sources */,
@@ -3819,6 +3828,7 @@
38193828
90B9302B082E6252AF4E7DC7 /* leveldb_migrations_test.cc in Sources */,
38203829
1145D70555D8CDC75183A88C /* leveldb_mutation_queue_test.cc in Sources */,
38213830
1DCA68BB2EF7A9144B35411F /* leveldb_opener_test.cc in Sources */,
3831+
80D8B7D6FFFEA12AF10E4E2B /* leveldb_overlay_migration_manager_test.cc in Sources */,
38223832
CD1E2F356FC71D7E74FCD26C /* leveldb_remote_document_cache_test.cc in Sources */,
38233833
077292C9797D97D3851F15CE /* leveldb_snappy_test.cc in Sources */,
38243834
06485D6DA8F64757D72636E1 /* leveldb_target_cache_test.cc in Sources */,
@@ -4033,6 +4043,7 @@
40334043
AD89E95440264713557FB38E /* leveldb_migrations_test.cc in Sources */,
40344044
FE701C2D739A5371BCBD62B9 /* leveldb_mutation_queue_test.cc in Sources */,
40354045
98FE82875A899A40A98AAC22 /* leveldb_opener_test.cc in Sources */,
4046+
6F256C06FCBA46378EC35D72 /* leveldb_overlay_migration_manager_test.cc in Sources */,
40364047
79D86DD18BB54D2D69DC457F /* leveldb_remote_document_cache_test.cc in Sources */,
40374048
82228CD6CE4A7A9254F8E82D /* leveldb_snappy_test.cc in Sources */,
40384049
6C388B2D0967088758FF2425 /* leveldb_target_cache_test.cc in Sources */,
@@ -4247,6 +4258,7 @@
42474258
61ECC7CE18700CBD73D0D810 /* leveldb_migrations_test.cc in Sources */,
42484259
A478FDD7C3F48FBFDDA7D8F5 /* leveldb_mutation_queue_test.cc in Sources */,
42494260
A06FBB7367CDD496887B86F8 /* leveldb_opener_test.cc in Sources */,
4261+
A9206FF8FF8834347E9C7DDB /* leveldb_overlay_migration_manager_test.cc in Sources */,
42504262
A27096F764227BC73526FED3 /* leveldb_remote_document_cache_test.cc in Sources */,
42514263
EAC0914B6DCC53008483AEE3 /* leveldb_snappy_test.cc in Sources */,
42524264
D04CBBEDB8DC16D8C201AC49 /* leveldb_target_cache_test.cc in Sources */,
@@ -4457,6 +4469,7 @@
44574469
BACBBF4AF2F5455673AEAB35 /* leveldb_migrations_test.cc in Sources */,
44584470
98708140787A9465D883EEC9 /* leveldb_mutation_queue_test.cc in Sources */,
44594471
8342277EB0553492B6668877 /* leveldb_opener_test.cc in Sources */,
4472+
EF4FB3034994E6386F3C78FF /* leveldb_overlay_migration_manager_test.cc in Sources */,
44604473
8077722A6BB175D3108CDC55 /* leveldb_remote_document_cache_test.cc in Sources */,
44614474
C4548D8C790387C8E64F0FC4 /* leveldb_snappy_test.cc in Sources */,
44624475
284A5280F868B2B4B5A1C848 /* leveldb_target_cache_test.cc in Sources */,
@@ -4690,6 +4703,7 @@
46904703
B576823475FBCA5EFA583F9C /* leveldb_migrations_test.cc in Sources */,
46914704
4FAD8823DC37B9CA24379E85 /* leveldb_mutation_queue_test.cc in Sources */,
46924705
4562CDD90F5FF0491F07C5DA /* leveldb_opener_test.cc in Sources */,
4706+
1A1299107EFF68DA9DAB19BD /* leveldb_overlay_migration_manager_test.cc in Sources */,
46934707
EE6DBFB0874A50578CE97A7F /* leveldb_remote_document_cache_test.cc in Sources */,
46944708
978D9EFDC56CC2E1FA468712 /* leveldb_snappy_test.cc in Sources */,
46954709
6380CACCF96A9B26900983DC /* leveldb_target_cache_test.cc in Sources */,

Firestore/Example/Tests/Integration/API/FIRWriteBatchTests.mm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ int64_t GetCurrentMemoryUsedInMb() {
375375
return -1;
376376
}
377377

378+
#if !defined(THREAD_SANITIZER) && !defined(ADDRESS_SANITIZER)
378379
- (void)testReasonableMemoryUsageForLotsOfMutations {
379380
XCTestExpectation *expectation =
380381
[self expectationWithDescription:@"testReasonableMemoryUsageForLotsOfMutations"];
@@ -383,7 +384,7 @@ - (void)testReasonableMemoryUsageForLotsOfMutations {
383384
FIRWriteBatch *batch = [mainDoc.firestore batch];
384385

385386
// > 500 mutations will be rejected.
386-
const int maxMutations = 500;
387+
const int maxMutations = 400;
387388
for (int i = 0; i != maxMutations; ++i) {
388389
FIRDocumentReference *nestedDoc = [[mainDoc collectionWithPath:@"nested"] documentWithAutoID];
389390
// The exact data doesn't matter; what is important is the large number of mutations.
@@ -401,19 +402,18 @@ - (void)testReasonableMemoryUsageForLotsOfMutations {
401402
const int64_t memoryUsedAfterCommitMb = GetCurrentMemoryUsedInMb();
402403
XCTAssertNotEqual(memoryUsedAfterCommitMb, -1);
403404

404-
#if !defined(THREAD_SANITIZER) && !defined(ADDRESS_SANITIZER)
405405
// This by its nature cannot be a precise value. Runs on simulator seem to give an increase of
406406
// 10MB in debug mode pretty consistently. A regression would be on the scale of 500Mb.
407407
//
408408
// This check is disabled under the thread sanitizer because it introduces an overhead of
409409
// 5x-10x.
410410
XCTAssertLessThan(memoryUsedAfterCommitMb - memoryUsedBeforeCommitMb, 20);
411-
#endif
412411

413412
[expectation fulfill];
414413
}];
415414
[self awaitExpectations];
416415
}
416+
#endif // #if !defined(THREAD_SANITIZER) && !defined(ADDRESS_SANITIZER)
417417

418418
@end
419419

Firestore/core/src/immutable/sorted_set.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,15 @@ class SortedSet : public SortedContainer {
141141
return map_.keys_in(start_key, end_key);
142142
}
143143

144+
template <typename MapType>
145+
static SortedSet FromKeysOf(const MapType& map) {
146+
SortedSet result;
147+
for (const K& key : map.keys()) {
148+
result = result.insert(key);
149+
}
150+
return result;
151+
}
152+
144153
friend bool operator==(const SortedSet& lhs, const SortedSet& rhs) {
145154
if (lhs.size() != rhs.size()) {
146155
return false;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* Copyright 2022 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#include "Firestore/core/src/local/document_overlay_cache.h"
18+
19+
#include <utility>
20+
21+
#include "Firestore/core/src/immutable/sorted_set.h"
22+
#include "Firestore/core/src/model/document_key.h"
23+
#include "Firestore/core/src/model/overlay.h"
24+
25+
namespace firebase {
26+
namespace firestore {
27+
namespace local {
28+
29+
using model::DocumentKey;
30+
using model::DocumentKeySet;
31+
using model::Overlay;
32+
using model::OverlayByDocumentKeyMap;
33+
34+
void DocumentOverlayCache::GetOverlays(OverlayByDocumentKeyMap& dest,
35+
const DocumentKeySet& keys) const {
36+
for (const DocumentKey& key : keys) {
37+
absl::optional<Overlay> overlay = GetOverlay(key);
38+
if (overlay.has_value()) {
39+
dest[key] = std::move(overlay).value();
40+
}
41+
}
42+
}
43+
44+
} // namespace local
45+
} // namespace firestore
46+
} // namespace firebase

Firestore/core/src/local/document_overlay_cache.h

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,6 @@ class DocumentOverlayCacheTestHelper;
4545
*/
4646
class DocumentOverlayCache {
4747
public:
48-
using OverlayByDocumentKeyMap = std::
49-
unordered_map<model::DocumentKey, model::Overlay, model::DocumentKeyHash>;
50-
using MutationByDocumentKeyMap = std::unordered_map<model::DocumentKey,
51-
model::Mutation,
52-
model::DocumentKeyHash>;
53-
5448
virtual ~DocumentOverlayCache() = default;
5549

5650
/**
@@ -61,13 +55,21 @@ class DocumentOverlayCache {
6155
virtual absl::optional<model::Overlay> GetOverlay(
6256
const model::DocumentKey& key) const = 0;
6357

58+
/**
59+
* Gets the saved overlay mutation for the given document keys. Skips keys for
60+
* which there are no overlays.
61+
*/
62+
virtual void GetOverlays(model::OverlayByDocumentKeyMap& dest,
63+
const model::DocumentKeySet& keys) const;
64+
6465
/**
6566
* Saves the given document key to mutation map to persistence as overlays.
6667
*
6768
* All overlays will have their largest batch id set to `largestBatchId`.
6869
*/
69-
virtual void SaveOverlays(int largest_batch_id,
70-
const MutationByDocumentKeyMap& overlays) = 0;
70+
virtual void SaveOverlays(
71+
int largest_batch_id,
72+
const model::MutationByDocumentKeyMap& overlays) = 0;
7173

7274
/** Removes the overlay whose largest-batch-id equals to the given ID. */
7375
virtual void RemoveOverlaysForBatchId(int batch_id) = 0;
@@ -80,7 +82,7 @@ class DocumentOverlayCache {
8082
* Only overlays that contain a change past `sinceBatchId` are returned.
8183
* @return Mapping of each document key in the collection to its overlay.
8284
*/
83-
virtual OverlayByDocumentKeyMap GetOverlays(
85+
virtual model::OverlayByDocumentKeyMap GetOverlays(
8486
const model::ResourcePath& collection, int since_batch_id) const = 0;
8587

8688
/**
@@ -98,7 +100,7 @@ class DocumentOverlayCache {
98100
* @return Mapping of each document key in the collection group to its
99101
* overlay.
100102
*/
101-
virtual OverlayByDocumentKeyMap GetOverlays(
103+
virtual model::OverlayByDocumentKeyMap GetOverlays(
102104
absl::string_view collection_group,
103105
int since_batch_id,
104106
std::size_t count) const = 0;

Firestore/core/src/local/leveldb_document_overlay_cache.cc

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ namespace local {
3737
using credentials::User;
3838
using model::DocumentKey;
3939
using model::Mutation;
40+
using model::MutationByDocumentKeyMap;
4041
using model::Overlay;
42+
using model::OverlayByDocumentKeyMap;
4143
using model::OverlayHash;
4244
using model::ResourcePath;
4345
using nanopb::Message;
@@ -83,9 +85,8 @@ void LevelDbDocumentOverlayCache::RemoveOverlaysForBatchId(int batch_id) {
8385
batch_id, [&](LevelDbDocumentOverlayKey&& key) { DeleteOverlay(key); });
8486
}
8587

86-
DocumentOverlayCache::OverlayByDocumentKeyMap
87-
LevelDbDocumentOverlayCache::GetOverlays(const ResourcePath& collection,
88-
int since_batch_id) const {
88+
OverlayByDocumentKeyMap LevelDbDocumentOverlayCache::GetOverlays(
89+
const ResourcePath& collection, int since_batch_id) const {
8990
OverlayByDocumentKeyMap result;
9091
ForEachKeyInCollection(
9192
collection, since_batch_id, [&](LevelDbDocumentOverlayKey&& key) {
@@ -96,10 +97,10 @@ LevelDbDocumentOverlayCache::GetOverlays(const ResourcePath& collection,
9697
return result;
9798
}
9899

99-
DocumentOverlayCache::OverlayByDocumentKeyMap
100-
LevelDbDocumentOverlayCache::GetOverlays(absl::string_view collection_group,
101-
int since_batch_id,
102-
std::size_t count) const {
100+
OverlayByDocumentKeyMap LevelDbDocumentOverlayCache::GetOverlays(
101+
absl::string_view collection_group,
102+
int since_batch_id,
103+
std::size_t count) const {
103104
absl::optional<int> current_batch_id;
104105
OverlayByDocumentKeyMap result;
105106
ForEachKeyInCollectionGroup(

0 commit comments

Comments
 (0)