@firebase/firestore 3.4.8-canary.7b58dabdf → 3.4.8-canary.942e59c64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/firestore/src/core/query.d.ts +2 -4
- package/dist/firestore/src/core/target.d.ts +4 -4
- package/dist/firestore/src/local/index_manager.d.ts +5 -0
- package/dist/firestore/src/local/indexeddb_index_manager.d.ts +1 -5
- package/dist/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/firestore/src/local/memory_index_manager.d.ts +1 -0
- package/dist/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/firestore/src/model/collections.d.ts +1 -1
- package/dist/firestore/src/model/values.d.ts +14 -2
- package/dist/firestore/src/util/misc.d.ts +3 -0
- package/dist/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/index.esm2017.js +2884 -2818
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +3071 -3010
- package/dist/index.esm5.js.map +1 -1
- package/dist/index.node.cjs.js +176 -107
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.mjs +176 -107
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.rn.js +2948 -2882
- package/dist/index.rn.js.map +1 -1
- package/dist/internal.d.ts +5 -0
- package/dist/lite/firestore/src/core/query.d.ts +2 -4
- package/dist/lite/firestore/src/core/target.d.ts +4 -4
- package/dist/lite/firestore/src/local/index_manager.d.ts +5 -0
- package/dist/lite/firestore/src/local/indexeddb_index_manager.d.ts +1 -5
- package/dist/lite/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/lite/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/lite/firestore/src/local/memory_index_manager.d.ts +1 -0
- package/dist/lite/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/lite/firestore/src/model/collections.d.ts +1 -1
- package/dist/lite/firestore/src/model/values.d.ts +14 -2
- package/dist/lite/firestore/src/util/misc.d.ts +3 -0
- package/dist/lite/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/lite/index.browser.esm2017.js +190 -184
- package/dist/lite/index.browser.esm2017.js.map +1 -1
- package/dist/lite/index.browser.esm5.js +209 -203
- package/dist/lite/index.browser.esm5.js.map +1 -1
- package/dist/lite/index.node.cjs.js +24 -10
- package/dist/lite/index.node.cjs.js.map +1 -1
- package/dist/lite/index.node.mjs +24 -10
- package/dist/lite/index.node.mjs.map +1 -1
- package/dist/lite/index.rn.esm2017.js +1184 -1178
- package/dist/lite/index.rn.esm2017.js.map +1 -1
- package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +18 -18
- package/dist/lite/packages/firestore/src/core/query.d.ts +2 -4
- package/dist/lite/packages/firestore/src/core/target.d.ts +4 -4
- package/dist/lite/packages/firestore/src/local/index_manager.d.ts +5 -0
- package/dist/lite/packages/firestore/src/local/indexeddb_index_manager.d.ts +1 -5
- package/dist/lite/packages/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/lite/packages/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/lite/packages/firestore/src/local/memory_index_manager.d.ts +1 -0
- package/dist/lite/packages/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/lite/packages/firestore/src/model/collections.d.ts +1 -1
- package/dist/lite/packages/firestore/src/model/values.d.ts +14 -2
- package/dist/lite/packages/firestore/src/util/misc.d.ts +3 -0
- package/dist/lite/packages/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/packages/firestore/dist/index.esm2017.d.ts +169 -169
- package/dist/packages/firestore/src/core/query.d.ts +2 -4
- package/dist/packages/firestore/src/core/target.d.ts +4 -4
- package/dist/packages/firestore/src/local/index_manager.d.ts +5 -0
- package/dist/packages/firestore/src/local/indexeddb_index_manager.d.ts +1 -5
- package/dist/packages/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/packages/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/packages/firestore/src/local/memory_index_manager.d.ts +1 -0
- package/dist/packages/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/packages/firestore/src/model/collections.d.ts +1 -1
- package/dist/packages/firestore/src/model/values.d.ts +14 -2
- package/dist/packages/firestore/src/util/misc.d.ts +3 -0
- package/dist/packages/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/private.d.ts +5 -0
- package/package.json +9 -9
|
@@ -243,7 +243,7 @@ declare class an {
|
|
|
243
243
|
/**
|
|
244
244
|
* Sentinel values that can be used when writing document fields with `set()`
|
|
245
245
|
* or `update()`.
|
|
246
|
-
*/ declare class
|
|
246
|
+
*/ declare class vn {
|
|
247
247
|
/**
|
|
248
248
|
* @param _methodName - The public API endpoint that returns this class.
|
|
249
249
|
* @hideconstructor
|
|
@@ -335,7 +335,7 @@ declare class an {
|
|
|
335
335
|
*
|
|
336
336
|
* Latitude values are in the range of [-90, 90].
|
|
337
337
|
* Longitude values are in the range of [-180, 180].
|
|
338
|
-
*/ declare class
|
|
338
|
+
*/ declare class bn {
|
|
339
339
|
/**
|
|
340
340
|
* Creates a new immutable `GeoPoint` object with the provided latitude and
|
|
341
341
|
* longitude values.
|
|
@@ -724,7 +724,7 @@ declare function fr(...t: any[]): lr;
|
|
|
724
724
|
* @param reference - The reference of the document to fetch.
|
|
725
725
|
* @returns A Promise resolved with a `DocumentSnapshot` containing the current
|
|
726
726
|
* document contents.
|
|
727
|
-
*/ declare function
|
|
727
|
+
*/ declare function vr(t: any): Promise<Yn>;
|
|
728
728
|
/**
|
|
729
729
|
* Executes the query and returns the results as a {@link QuerySnapshot}.
|
|
730
730
|
*
|
|
@@ -736,7 +736,7 @@ declare function fr(...t: any[]): lr;
|
|
|
736
736
|
*
|
|
737
737
|
* @param query - The `Query` to execute.
|
|
738
738
|
* @returns A Promise that will be resolved with the results of the query.
|
|
739
|
-
*/ declare function
|
|
739
|
+
*/ declare function br(t: any): Promise<Kn>;
|
|
740
740
|
/**
|
|
741
741
|
* Returns the existing `Firestore` instance that is associated with the
|
|
742
742
|
* provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
|
|
@@ -979,40 +979,40 @@ import { FirebaseError as c } from "@firebase/util/dist/src/errors";
|
|
|
979
979
|
q: any;
|
|
980
980
|
/** Creates a new top-level parse context. */ ht(t: any, e: any, n: any, r?: boolean): Rn;
|
|
981
981
|
}
|
|
982
|
-
declare class xn extends
|
|
982
|
+
declare class xn extends vn {
|
|
983
983
|
constructor(t: any, e: any);
|
|
984
984
|
lt: any;
|
|
985
|
-
_toFieldTransform(t: any):
|
|
985
|
+
_toFieldTransform(t: any): ve;
|
|
986
986
|
isEqual(t: any): boolean;
|
|
987
987
|
}
|
|
988
|
-
declare class Fn extends
|
|
988
|
+
declare class Fn extends vn {
|
|
989
989
|
constructor(t: any, e: any);
|
|
990
990
|
lt: any;
|
|
991
|
-
_toFieldTransform(t: any):
|
|
991
|
+
_toFieldTransform(t: any): ve;
|
|
992
992
|
isEqual(t: any): boolean;
|
|
993
993
|
}
|
|
994
|
-
declare class Nn extends
|
|
994
|
+
declare class Nn extends vn {
|
|
995
995
|
_toFieldTransform(t: any): null;
|
|
996
996
|
isEqual(t: any): boolean;
|
|
997
997
|
}
|
|
998
998
|
declare class lr extends Zn {
|
|
999
999
|
constructor(t: any, e: any, n: any);
|
|
1000
1000
|
type: any;
|
|
1001
|
-
|
|
1001
|
+
bt: any;
|
|
1002
1002
|
Et: any;
|
|
1003
1003
|
_apply(t: any): hn;
|
|
1004
1004
|
}
|
|
1005
|
-
declare class qn extends
|
|
1005
|
+
declare class qn extends vn {
|
|
1006
1006
|
constructor(t: any, e: any);
|
|
1007
1007
|
ft: any;
|
|
1008
|
-
_toFieldTransform(t: any):
|
|
1008
|
+
_toFieldTransform(t: any): ve;
|
|
1009
1009
|
isEqual(t: any): boolean;
|
|
1010
1010
|
}
|
|
1011
1011
|
declare class ir extends Zn {
|
|
1012
1012
|
constructor(t: any, e: any, n: any);
|
|
1013
1013
|
type: any;
|
|
1014
1014
|
gt: any;
|
|
1015
|
-
|
|
1015
|
+
vt: any;
|
|
1016
1016
|
_apply(t: any): hn;
|
|
1017
1017
|
}
|
|
1018
1018
|
declare class rr extends Zn {
|
|
@@ -1022,14 +1022,14 @@ declare class rr extends Zn {
|
|
|
1022
1022
|
type: string;
|
|
1023
1023
|
_apply(t: any): hn;
|
|
1024
1024
|
}
|
|
1025
|
-
declare class Sn extends
|
|
1026
|
-
_toFieldTransform(t: any):
|
|
1025
|
+
declare class Sn extends vn {
|
|
1026
|
+
_toFieldTransform(t: any): ve;
|
|
1027
1027
|
isEqual(t: any): boolean;
|
|
1028
1028
|
}
|
|
1029
1029
|
declare class cr extends Zn {
|
|
1030
1030
|
constructor(t: any, e: any, n: any);
|
|
1031
1031
|
type: any;
|
|
1032
|
-
|
|
1032
|
+
bt: any;
|
|
1033
1033
|
Et: any;
|
|
1034
1034
|
_apply(t: any): hn;
|
|
1035
1035
|
}
|
|
@@ -1134,9 +1134,9 @@ declare class J {
|
|
|
1134
1134
|
* See the License for the specific language governing permissions and
|
|
1135
1135
|
* limitations under the License.
|
|
1136
1136
|
*/
|
|
1137
|
-
/** A field path and the TransformOperation to perform upon it. */ declare class
|
|
1137
|
+
/** A field path and the TransformOperation to perform upon it. */ declare class ve {
|
|
1138
1138
|
constructor(t: any, e: any);
|
|
1139
1139
|
field: any;
|
|
1140
1140
|
transform: any;
|
|
1141
1141
|
}
|
|
1142
|
-
export { gn as Bytes, ln as CollectionReference, an as DocumentReference, Yn as DocumentSnapshot, yn as FieldPath,
|
|
1142
|
+
export { gn as Bytes, ln as CollectionReference, an as DocumentReference, Yn as DocumentSnapshot, yn as FieldPath, vn as FieldValue, rn as Firestore, U as FirestoreError, bn as GeoPoint, hn as Query, Zn as QueryConstraint, Hn as QueryDocumentSnapshot, Kn as QuerySnapshot, gt as Timestamp, Ur as Transaction, $r as WriteBatch, Ar as addDoc, Dr as arrayRemove, Vr as arrayUnion, fn as collection, dn as collectionGroup, un as connectFirestoreEmulator, Ir as deleteDoc, Rr as deleteField, wn as doc, _n as documentId, dr as endAt, fr as endBefore, vr as getDoc, br as getDocs, on as getFirestore, Nr as increment, sn as initializeFirestore, or as limit, ur as limitToLast, sr as orderBy, tr as query, pn as queryEqual, mn as refEqual, kr as runTransaction, Pr as serverTimestamp, Er as setDoc, w as setLogLevel, Jn as snapshotEqual, hr as startAfter, ar as startAt, cn as terminate, Tr as updateDoc, nr as where, Fr as writeBatch };
|
|
@@ -76,9 +76,7 @@ export declare function asCollectionQueryAtPath(query: Query, path: ResourcePath
|
|
|
76
76
|
* Returns true if this query does not specify any query constraints that
|
|
77
77
|
* could remove results.
|
|
78
78
|
*/
|
|
79
|
-
export declare function
|
|
80
|
-
export declare function hasLimitToFirst(query: Query): boolean;
|
|
81
|
-
export declare function hasLimitToLast(query: Query): boolean;
|
|
79
|
+
export declare function queryMatchesAllDocuments(query: Query): boolean;
|
|
82
80
|
export declare function getFirstOrderByField(query: Query): FieldPath | null;
|
|
83
81
|
export declare function getInequalityFilterField(query: Query): FieldPath | null;
|
|
84
82
|
/**
|
|
@@ -113,7 +111,7 @@ export declare function queryOrderBy(query: Query): OrderBy[];
|
|
|
113
111
|
export declare function queryToTarget(query: Query): Target;
|
|
114
112
|
export declare function queryWithAddedFilter(query: Query, filter: Filter): Query;
|
|
115
113
|
export declare function queryWithAddedOrderBy(query: Query, orderBy: OrderBy): Query;
|
|
116
|
-
export declare function queryWithLimit(query: Query, limit: number, limitType: LimitType): Query;
|
|
114
|
+
export declare function queryWithLimit(query: Query, limit: number | null, limitType: LimitType): Query;
|
|
117
115
|
export declare function queryWithStartAt(query: Query, bound: Bound): Query;
|
|
118
116
|
export declare function queryWithEndAt(query: Query, bound: Bound): Query;
|
|
119
117
|
export declare function queryEquals(left: Query, right: Query): boolean;
|
|
@@ -72,16 +72,16 @@ export declare function targetGetArrayValues(target: Target, fieldIndex: FieldIn
|
|
|
72
72
|
export declare function targetGetNotInValues(target: Target, fieldIndex: FieldIndex): ProtoValue[] | null;
|
|
73
73
|
/**
|
|
74
74
|
* Returns a lower bound of field values that can be used as a starting point to
|
|
75
|
-
* scan the index defined by `fieldIndex`. Returns `
|
|
75
|
+
* scan the index defined by `fieldIndex`. Returns `MIN_VALUE` if no lower bound
|
|
76
76
|
* exists.
|
|
77
77
|
*/
|
|
78
|
-
export declare function targetGetLowerBound(target: Target, fieldIndex: FieldIndex): Bound
|
|
78
|
+
export declare function targetGetLowerBound(target: Target, fieldIndex: FieldIndex): Bound;
|
|
79
79
|
/**
|
|
80
80
|
* Returns an upper bound of field values that can be used as an ending point
|
|
81
|
-
* when scanning the index defined by `fieldIndex`. Returns `
|
|
81
|
+
* when scanning the index defined by `fieldIndex`. Returns `MAX_VALUE` if no
|
|
82
82
|
* upper bound exists.
|
|
83
83
|
*/
|
|
84
|
-
export declare function targetGetUpperBound(target: Target, fieldIndex: FieldIndex): Bound
|
|
84
|
+
export declare function targetGetUpperBound(target: Target, fieldIndex: FieldIndex): Bound;
|
|
85
85
|
/** Returns the number of segments of a perfect index for this target. */
|
|
86
86
|
export declare function targetGetSegmentCount(target: Target): number;
|
|
87
87
|
export declare abstract class Filter {
|
|
@@ -109,4 +109,9 @@ export interface IndexManager {
|
|
|
109
109
|
updateCollectionGroup(transaction: PersistenceTransaction, collectionGroup: string, offset: IndexOffset): PersistencePromise<void>;
|
|
110
110
|
/** Updates the index entries for the provided documents. */
|
|
111
111
|
updateIndexEntries(transaction: PersistenceTransaction, documents: DocumentMap): PersistencePromise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Iterates over all field indexes that are used to serve the given target,
|
|
114
|
+
* and returns the minimum offset of them all.
|
|
115
|
+
*/
|
|
116
|
+
getMinOffset(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexOffset>;
|
|
112
117
|
}
|
|
@@ -70,11 +70,6 @@ export declare class IndexedDbIndexManager implements IndexManager {
|
|
|
70
70
|
private generateLowerBound;
|
|
71
71
|
/** Generates the upper bound for `arrayValue` and `directionalValue`. */
|
|
72
72
|
private generateUpperBound;
|
|
73
|
-
/**
|
|
74
|
-
* Generates an empty bound that scopes the index scan to the current index
|
|
75
|
-
* and user.
|
|
76
|
-
*/
|
|
77
|
-
private generateEmptyBound;
|
|
78
73
|
private getFieldIndex;
|
|
79
74
|
getIndexType(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexType>;
|
|
80
75
|
/**
|
|
@@ -133,4 +128,5 @@ export declare class IndexedDbIndexManager implements IndexManager {
|
|
|
133
128
|
* '[foo > 2 && foo != 3]` becomes `[foo > 2 && < 3, foo > 3]`.
|
|
134
129
|
*/
|
|
135
130
|
private createRange;
|
|
131
|
+
getMinOffset(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexOffset>;
|
|
136
132
|
}
|
|
@@ -20,6 +20,7 @@ import { BundledQuery } from '../protos/firestore_bundle_proto';
|
|
|
20
20
|
import { Document as ProtoDocument, DocumentsTarget as ProtoDocumentsTarget, QueryTarget as ProtoQueryTarget, Write as ProtoWrite } from '../protos/firestore_proto_api';
|
|
21
21
|
import { EncodedResourcePath } from './encoded_resource_path';
|
|
22
22
|
import { DbTimestampKey } from './indexeddb_sentinels';
|
|
23
|
+
export declare const INDEXING_ENABLED = false;
|
|
23
24
|
export declare const INDEXING_SCHEMA_VERSION = 14;
|
|
24
25
|
/**
|
|
25
26
|
* Schema Version for the Web client:
|
|
@@ -33,7 +33,7 @@ import { RemoteDocumentCache } from './remote_document_cache';
|
|
|
33
33
|
export declare class LocalDocumentsView {
|
|
34
34
|
readonly remoteDocumentCache: RemoteDocumentCache;
|
|
35
35
|
readonly mutationQueue: MutationQueue;
|
|
36
|
-
readonly indexManager
|
|
36
|
+
private readonly indexManager;
|
|
37
37
|
constructor(remoteDocumentCache: RemoteDocumentCache, mutationQueue: MutationQueue, indexManager: IndexManager);
|
|
38
38
|
/**
|
|
39
39
|
* Get the local view of the document identified by `key`.
|
|
@@ -35,6 +35,7 @@ export declare class MemoryIndexManager implements IndexManager {
|
|
|
35
35
|
getIndexType(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexType>;
|
|
36
36
|
getFieldIndexes(transaction: PersistenceTransaction, collectionGroup?: string): PersistencePromise<FieldIndex[]>;
|
|
37
37
|
getNextCollectionGroupToUpdate(transaction: PersistenceTransaction): PersistencePromise<string | null>;
|
|
38
|
+
getMinOffset(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexOffset>;
|
|
38
39
|
updateCollectionGroup(transaction: PersistenceTransaction, collectionGroup: string, offset: IndexOffset): PersistencePromise<void>;
|
|
39
40
|
updateIndexEntries(transaction: PersistenceTransaction, documents: DocumentMap): PersistencePromise<void>;
|
|
40
41
|
}
|
|
@@ -17,14 +17,35 @@
|
|
|
17
17
|
import { Query } from '../core/query';
|
|
18
18
|
import { SnapshotVersion } from '../core/snapshot_version';
|
|
19
19
|
import { DocumentKeySet, DocumentMap } from '../model/collections';
|
|
20
|
+
import { IndexManager } from './index_manager';
|
|
20
21
|
import { LocalDocumentsView } from './local_documents_view';
|
|
21
22
|
import { PersistencePromise } from './persistence_promise';
|
|
22
23
|
import { PersistenceTransaction } from './persistence_transaction';
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* The Firestore query engine.
|
|
26
|
+
*
|
|
27
|
+
* Firestore queries can be executed in three modes. The Query Engine determines
|
|
28
|
+
* what mode to use based on what data is persisted. The mode only determines
|
|
29
|
+
* the runtime complexity of the query - the result set is equivalent across all
|
|
30
|
+
* implementations.
|
|
31
|
+
*
|
|
32
|
+
* The Query engine will use indexed-based execution if a user has configured
|
|
33
|
+
* any index that can be used to execute query (via `setIndexConfiguration()`).
|
|
34
|
+
* Otherwise, the engine will try to optimize the query by re-using a previously
|
|
35
|
+
* persisted query result. If that is not possible, the query will be executed
|
|
36
|
+
* via a full collection scan.
|
|
37
|
+
*
|
|
38
|
+
* Index-based execution is the default when available. The query engine
|
|
39
|
+
* supports partial indexed execution and merges the result from the index
|
|
40
|
+
* lookup with documents that have not yet been indexed. The index evaluation
|
|
41
|
+
* matches the backend's format and as such, the SDK can use indexing for all
|
|
42
|
+
* queries that the backend supports.
|
|
43
|
+
*
|
|
44
|
+
* If no index exists, the query engine tries to take advantage of the target
|
|
45
|
+
* document mapping in the TargetCache. These mappings exists for all queries
|
|
46
|
+
* that have been synced with the backend at least once and allow the query
|
|
47
|
+
* engine to only read documents that previously matched a query plus any
|
|
48
|
+
* documents that were edited after the query was last listened to.
|
|
28
49
|
*
|
|
29
50
|
* There are some cases when this optimization is not guaranteed to produce
|
|
30
51
|
* the same results as full collection scans. In these cases, query
|
|
@@ -40,16 +61,29 @@ import { PersistenceTransaction } from './persistence_transaction';
|
|
|
40
61
|
*/
|
|
41
62
|
export declare class QueryEngine {
|
|
42
63
|
private localDocumentsView;
|
|
64
|
+
private indexManager;
|
|
65
|
+
private initialized;
|
|
43
66
|
/** Sets the document view to query against. */
|
|
44
|
-
|
|
67
|
+
initialize(localDocuments: LocalDocumentsView, indexManager: IndexManager): void;
|
|
45
68
|
/** Returns all local documents matching the specified query. */
|
|
46
69
|
getDocumentsMatchingQuery(transaction: PersistenceTransaction, query: Query, lastLimboFreeSnapshotVersion: SnapshotVersion, remoteKeys: DocumentKeySet): PersistencePromise<DocumentMap>;
|
|
70
|
+
/**
|
|
71
|
+
* Performs an indexed query that evaluates the query based on a collection's
|
|
72
|
+
* persisted index values. Returns `null` if an index is not available.
|
|
73
|
+
*/
|
|
74
|
+
private performQueryUsingIndex;
|
|
75
|
+
/**
|
|
76
|
+
* Performs a query based on the target's persisted query mapping. Returns
|
|
77
|
+
* `null` if the mapping is not available or cannot be used.
|
|
78
|
+
*/
|
|
79
|
+
private performQueryUsingRemoteKeys;
|
|
47
80
|
/** Applies the query filter and sorting to the provided documents. */
|
|
48
81
|
private applyQuery;
|
|
49
82
|
/**
|
|
50
83
|
* Determines if a limit query needs to be refilled from cache, making it
|
|
51
84
|
* ineligible for index-free execution.
|
|
52
85
|
*
|
|
86
|
+
* @param query The query.
|
|
53
87
|
* @param sortedPreviousResults - The documents that matched the query when it
|
|
54
88
|
* was last synchronized, sorted by the query's comparator.
|
|
55
89
|
* @param remoteKeys - The document keys that matched the query at the last
|
|
@@ -59,4 +93,9 @@ export declare class QueryEngine {
|
|
|
59
93
|
*/
|
|
60
94
|
private needsRefill;
|
|
61
95
|
private executeFullCollectionScan;
|
|
96
|
+
/**
|
|
97
|
+
* Combines the results from an indexed execution with the remaining documents
|
|
98
|
+
* that have not yet been indexed.
|
|
99
|
+
*/
|
|
100
|
+
private appendRemainingResults;
|
|
62
101
|
}
|
|
@@ -31,7 +31,7 @@ export interface DocumentSizeEntries {
|
|
|
31
31
|
sizeMap: SortedMap<DocumentKey, number>;
|
|
32
32
|
}
|
|
33
33
|
export declare type DocumentMap = SortedMap<DocumentKey, Document>;
|
|
34
|
-
export declare function documentMap(): DocumentMap;
|
|
34
|
+
export declare function documentMap(...docs: Document[]): DocumentMap;
|
|
35
35
|
export declare type OverlayMap = ObjectMap<DocumentKey, Overlay>;
|
|
36
36
|
export declare function newOverlayMap(): OverlayMap;
|
|
37
37
|
export declare type MutationMap = ObjectMap<DocumentKey, Mutation>;
|
|
@@ -81,5 +81,17 @@ export declare function isMaxValue(value: Value): boolean;
|
|
|
81
81
|
export declare function valuesGetLowerBound(value: Value): Value;
|
|
82
82
|
/** Returns the largest value for the given value type (exclusive). */
|
|
83
83
|
export declare function valuesGetUpperBound(value: Value): Value;
|
|
84
|
-
export declare function
|
|
85
|
-
|
|
84
|
+
export declare function lowerBoundCompare(left: {
|
|
85
|
+
value: Value;
|
|
86
|
+
inclusive: boolean;
|
|
87
|
+
}, right: {
|
|
88
|
+
value: Value;
|
|
89
|
+
inclusive: boolean;
|
|
90
|
+
}): number;
|
|
91
|
+
export declare function upperBoundCompare(left: {
|
|
92
|
+
value: Value;
|
|
93
|
+
inclusive: boolean;
|
|
94
|
+
}, right: {
|
|
95
|
+
value: Value;
|
|
96
|
+
inclusive: boolean;
|
|
97
|
+
}): number;
|
|
@@ -25,6 +25,9 @@ export declare function primitiveComparator<T>(left: T, right: T): number;
|
|
|
25
25
|
export interface Equatable<T> {
|
|
26
26
|
isEqual(other: T): boolean;
|
|
27
27
|
}
|
|
28
|
+
export interface Iterable<V> {
|
|
29
|
+
forEach: (cb: (v: V) => void) => void;
|
|
30
|
+
}
|
|
28
31
|
/** Helper to compare arrays using isEqual(). */
|
|
29
32
|
export declare function arrayEquals<T>(left: T[], right: T[], comparator: (l: T, r: T) => boolean): boolean;
|
|
30
33
|
/**
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { Query } from '../../../src/core/query';
|
|
18
18
|
import { SnapshotVersion } from '../../../src/core/snapshot_version';
|
|
19
|
+
import { IndexManager } from '../../../src/local/index_manager';
|
|
19
20
|
import { LocalDocumentsView } from '../../../src/local/local_documents_view';
|
|
20
21
|
import { PersistencePromise } from '../../../src/local/persistence_promise';
|
|
21
22
|
import { PersistenceTransaction } from '../../../src/local/persistence_transaction';
|
|
@@ -51,7 +52,7 @@ export declare class CountingQueryEngine extends QueryEngine {
|
|
|
51
52
|
documentsReadByKey: number;
|
|
52
53
|
resetCounts(): void;
|
|
53
54
|
getDocumentsMatchingQuery(transaction: PersistenceTransaction, query: Query, lastLimboFreeSnapshotVersion: SnapshotVersion, remoteKeys: DocumentKeySet): PersistencePromise<DocumentMap>;
|
|
54
|
-
|
|
55
|
+
initialize(localDocuments: LocalDocumentsView, indexManager: IndexManager): void;
|
|
55
56
|
private wrapRemoteDocumentCache;
|
|
56
57
|
private wrapMutationQueue;
|
|
57
58
|
}
|