Search in sources :

Example 46 with Query

use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.

the class TargetIndexMatcherTest method inequalityUsesSingleFieldIndex.

@Test
public void inequalityUsesSingleFieldIndex() {
    Query q = query("collId").filter(filter("a", ">", 1)).filter(filter("a", "<", 10));
    validateServesTarget(q, "a", FieldIndex.Segment.Kind.ASCENDING);
}
Also used : Query(com.google.firebase.firestore.core.Query) Test(org.junit.Test)

Example 47 with Query

use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.

the class TargetIndexMatcherTest method withMultipleEqualitiesAndInequality.

@Test
public void withMultipleEqualitiesAndInequality() {
    Query queriesMultipleFilters = query("collId").filter(filter("equality1", "==", "a")).filter(filter("equality2", "==", "b")).filter(filter("inequality", ">=", "c"));
    validateServesTarget(queriesMultipleFilters, "equality1", FieldIndex.Segment.Kind.ASCENDING, "equality2", FieldIndex.Segment.Kind.ASCENDING, "inequality", FieldIndex.Segment.Kind.ASCENDING);
    validateServesTarget(queriesMultipleFilters, "equality2", FieldIndex.Segment.Kind.ASCENDING, "equality1", FieldIndex.Segment.Kind.ASCENDING, "inequality", FieldIndex.Segment.Kind.ASCENDING);
    validateDoesNotServeTarget(queriesMultipleFilters, "equality2", FieldIndex.Segment.Kind.ASCENDING, "inequality", FieldIndex.Segment.Kind.ASCENDING, "equality1", FieldIndex.Segment.Kind.ASCENDING);
    queriesMultipleFilters = query("collId").filter(filter("equality1", "==", "a")).filter(filter("inequality", ">=", "c")).filter(filter("equality2", "==", "b"));
    validateServesTarget(queriesMultipleFilters, "equality1", FieldIndex.Segment.Kind.ASCENDING, "equality2", FieldIndex.Segment.Kind.ASCENDING, "inequality", FieldIndex.Segment.Kind.ASCENDING);
    validateServesTarget(queriesMultipleFilters, "equality2", FieldIndex.Segment.Kind.ASCENDING, "equality1", FieldIndex.Segment.Kind.ASCENDING, "inequality", FieldIndex.Segment.Kind.ASCENDING);
    validateDoesNotServeTarget(queriesMultipleFilters, "equality1", FieldIndex.Segment.Kind.ASCENDING, "inequality", FieldIndex.Segment.Kind.ASCENDING, "equality2", FieldIndex.Segment.Kind.ASCENDING);
}
Also used : Query(com.google.firebase.firestore.core.Query) Test(org.junit.Test)

Example 48 with Query

use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.

the class TargetIndexMatcherTest method canUsePartialIndex.

@Test
public void canUsePartialIndex() {
    Query q = query("collId").orderBy(orderBy("a"));
    validateServesTarget(q, "a", FieldIndex.Segment.Kind.ASCENDING);
    q = query("collId").orderBy(orderBy("a")).orderBy(orderBy("b"));
    validateServesTarget(q, "a", FieldIndex.Segment.Kind.ASCENDING);
    validateServesTarget(q, "a", FieldIndex.Segment.Kind.ASCENDING, "b", FieldIndex.Segment.Kind.ASCENDING);
}
Also used : Query(com.google.firebase.firestore.core.Query) Test(org.junit.Test)

Example 49 with Query

use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.

the class TargetIndexMatcherTest method withMultipleInequalities.

@Test
public void withMultipleInequalities() {
    Query q = query("collId").filter(filter("a", ">=", 1)).filter(filter("a", "==", 5)).filter(filter("a", "<=", 10));
    validateServesTarget(q, "a", FieldIndex.Segment.Kind.ASCENDING);
}
Also used : Query(com.google.firebase.firestore.core.Query) Test(org.junit.Test)

Example 50 with Query

use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.

the class TargetIndexMatcherTest method cannotUsePartialIndexWithMissingArrayContains.

@Test
public void cannotUsePartialIndexWithMissingArrayContains() {
    Query q = query("collId").filter(filter("a", "array-contains", "a")).orderBy(orderBy("b"));
    validateServesTarget(q, "a", FieldIndex.Segment.Kind.CONTAINS, "b", FieldIndex.Segment.Kind.ASCENDING);
    q = query("collId").orderBy(orderBy("b"));
    validateDoesNotServeTarget(q, "a", FieldIndex.Segment.Kind.CONTAINS, "b", FieldIndex.Segment.Kind.ASCENDING);
}
Also used : Query(com.google.firebase.firestore.core.Query) Test(org.junit.Test)

Aggregations

Query (com.google.firebase.firestore.core.Query)189 Test (org.junit.Test)179 BundledQuery (com.google.firebase.firestore.bundle.BundledQuery)40 NamedQuery (com.google.firebase.firestore.bundle.NamedQuery)39 StructuredQuery (com.google.firestore.v1.StructuredQuery)16 Target (com.google.firestore.v1.Target)13 DocumentsTarget (com.google.firestore.v1.Target.DocumentsTarget)13 QueryTarget (com.google.firestore.v1.Target.QueryTarget)13 DocumentSet (com.google.firebase.firestore.model.DocumentSet)12 MutableDocument (com.google.firebase.firestore.model.MutableDocument)8 ArrayList (java.util.ArrayList)8 TargetData (com.google.firebase.firestore.local.TargetData)7 FieldIndex (com.google.firebase.firestore.model.FieldIndex)7 DocumentKey (com.google.firebase.firestore.model.DocumentKey)6 ByteString (com.google.protobuf.ByteString)5 Document (com.google.firebase.firestore.model.Document)4 HashMap (java.util.HashMap)4 Target (com.google.firebase.firestore.core.Target)3 SnapshotVersion (com.google.firebase.firestore.model.SnapshotVersion)3 Map (java.util.Map)3