Skip to content

Commit 423a62f

Browse files
Enable Index-Free queries (#4618)
1 parent 95a4930 commit 423a62f

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

Firestore/CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
# Unreleased
1+
# Unreleased (v1.10.0)
2+
- [changed] Improved the performance of repeatedly executed queries when
3+
persistence is enabled. Recently executed queries should see dramatic
4+
improvements. This benefit is reduced if changes accumulate while the query
5+
is inactive. Queries that use the `limit()` API may not always benefit,
6+
depending on the accumulated changes.
27

38
# v1.9.0
49
- [feature] Added a `limit(toLast:)` query operator, which returns the last

Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@
3333
#include "Firestore/core/src/firebase/firestore/core/database_info.h"
3434
#include "Firestore/core/src/firebase/firestore/core/event_manager.h"
3535
#include "Firestore/core/src/firebase/firestore/core/sync_engine.h"
36+
#include "Firestore/core/src/firebase/firestore/local/index_free_query_engine.h"
3637
#include "Firestore/core/src/firebase/firestore/local/local_store.h"
3738
#include "Firestore/core/src/firebase/firestore/local/persistence.h"
38-
#include "Firestore/core/src/firebase/firestore/local/simple_query_engine.h"
3939
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
4040
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
4141
#include "Firestore/core/src/firebase/firestore/remote/remote_store.h"
@@ -66,10 +66,10 @@
6666
using firebase::firestore::core::QueryListener;
6767
using firebase::firestore::core::SyncEngine;
6868
using firebase::firestore::core::ViewSnapshot;
69+
using firebase::firestore::local::IndexFreeQueryEngine;
6970
using firebase::firestore::local::LocalStore;
7071
using firebase::firestore::local::Persistence;
7172
using firebase::firestore::local::QueryData;
72-
using firebase::firestore::local::SimpleQueryEngine;
7373
using firebase::firestore::model::DatabaseId;
7474
using firebase::firestore::model::DocumentKey;
7575
using firebase::firestore::model::DocumentKeySet;
@@ -181,8 +181,7 @@ @implementation FSTSyncEngineTestDriver {
181181
std::vector<std::shared_ptr<EventListener<Empty>>> _snapshotsInSyncListeners;
182182
std::shared_ptr<MockDatastore> _datastore;
183183

184-
// TODO(index-free): Use IndexFreeQueryEngine
185-
SimpleQueryEngine _queryEngine;
184+
IndexFreeQueryEngine _queryEngine;
186185

187186
int _snapshotsInSyncEvents;
188187
}

Firestore/core/src/firebase/firestore/core/firestore_client.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
#include "Firestore/core/src/firebase/firestore/core/database_info.h"
2626
#include "Firestore/core/src/firebase/firestore/core/event_manager.h"
2727
#include "Firestore/core/src/firebase/firestore/core/view.h"
28+
#include "Firestore/core/src/firebase/firestore/local/index_free_query_engine.h"
2829
#include "Firestore/core/src/firebase/firestore/local/leveldb_persistence.h"
2930
#include "Firestore/core/src/firebase/firestore/local/local_serializer.h"
3031
#include "Firestore/core/src/firebase/firestore/local/memory_persistence.h"
3132
#include "Firestore/core/src/firebase/firestore/local/query_result.h"
32-
#include "Firestore/core/src/firebase/firestore/local/simple_query_engine.h"
3333
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
3434
#include "Firestore/core/src/firebase/firestore/model/document_set.h"
3535
#include "Firestore/core/src/firebase/firestore/model/mutation.h"
@@ -59,13 +59,13 @@ using api::SnapshotMetadata;
5959
using auth::CredentialsProvider;
6060
using auth::User;
6161
using firestore::Error;
62+
using local::IndexFreeQueryEngine;
6263
using local::LevelDbPersistence;
6364
using local::LocalSerializer;
6465
using local::LocalStore;
6566
using local::LruParams;
6667
using local::MemoryPersistence;
6768
using local::QueryResult;
68-
using local::SimpleQueryEngine;
6969
using model::DatabaseId;
7070
using model::Document;
7171
using model::DocumentKeySet;
@@ -185,8 +185,7 @@ void FirestoreClient::Initialize(const User& user, const Settings& settings) {
185185
persistence_ = MemoryPersistence::WithEagerGarbageCollector();
186186
}
187187

188-
// TODO(index-free): Use IndexFreeQueryEngine
189-
query_engine_ = absl::make_unique<SimpleQueryEngine>();
188+
query_engine_ = absl::make_unique<IndexFreeQueryEngine>();
190189
local_store_ = absl::make_unique<LocalStore>(persistence_.get(),
191190
query_engine_.get(), user);
192191

0 commit comments

Comments
 (0)