Skip to content

Commit 5600426

Browse files
Move Partial/Full index test (#3650)
1 parent 11dc9e9 commit 5600426

File tree

2 files changed

+93
-92
lines changed

2 files changed

+93
-92
lines changed

firebase-firestore/src/test/java/com/google/firebase/firestore/local/SQLiteIndexManagerTest.java

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -980,6 +980,99 @@ public void testChangeUser() {
980980
verifySequenceNumber(indexManager, "coll3", 0);
981981
}
982982

983+
@Test
984+
public void testPartialIndexAndFullIndex() throws Exception {
985+
indexManager.addFieldIndex(fieldIndex("coll", "a", Kind.ASCENDING));
986+
indexManager.addFieldIndex(fieldIndex("coll", "b", Kind.ASCENDING));
987+
indexManager.addFieldIndex(fieldIndex("coll", "c", Kind.ASCENDING, "d", Kind.ASCENDING));
988+
989+
Query query1 = query("coll").filter(filter("a", "==", 1));
990+
validateIsFullIndex(query1);
991+
992+
Query query2 = query("coll").filter(filter("b", "==", 1));
993+
validateIsFullIndex(query2);
994+
995+
Query query3 = query("coll").filter(filter("a", "==", 1)).orderBy(orderBy("a"));
996+
validateIsFullIndex(query3);
997+
998+
Query query4 = query("coll").filter(filter("b", "==", 1)).orderBy(orderBy("b"));
999+
validateIsFullIndex(query4);
1000+
1001+
Query query5 = query("coll").filter(filter("a", "==", 1)).filter(filter("b", "==", 1));
1002+
validateIsPartialIndex(query5);
1003+
1004+
Query query6 = query("coll").filter(filter("a", "==", 1)).orderBy(orderBy("b"));
1005+
validateIsPartialIndex(query6);
1006+
1007+
Query query7 = query("coll").filter(filter("b", "==", 1)).orderBy(orderBy("a"));
1008+
validateIsPartialIndex(query7);
1009+
1010+
Query query8 = query("coll").filter(filter("c", "==", 1)).filter(filter("d", "==", 1));
1011+
validateIsFullIndex(query8);
1012+
1013+
Query query9 =
1014+
query("coll")
1015+
.filter(filter("c", "==", 1))
1016+
.filter(filter("d", "==", 1))
1017+
.orderBy(orderBy("c"));
1018+
validateIsFullIndex(query9);
1019+
1020+
Query query10 =
1021+
query("coll")
1022+
.filter(filter("c", "==", 1))
1023+
.filter(filter("d", "==", 1))
1024+
.orderBy(orderBy("d"));
1025+
validateIsFullIndex(query10);
1026+
1027+
Query query11 =
1028+
query("coll")
1029+
.filter(filter("c", "==", 1))
1030+
.filter(filter("d", "==", 1))
1031+
.orderBy(orderBy("c"))
1032+
.orderBy(orderBy("d"));
1033+
validateIsFullIndex(query11);
1034+
1035+
Query query12 =
1036+
query("coll")
1037+
.filter(filter("c", "==", 1))
1038+
.filter(filter("d", "==", 1))
1039+
.orderBy(orderBy("d"))
1040+
.orderBy(orderBy("c"));
1041+
validateIsFullIndex(query12);
1042+
1043+
Query query13 =
1044+
query("coll")
1045+
.filter(filter("c", "==", 1))
1046+
.filter(filter("d", "==", 1))
1047+
.orderBy(orderBy("e"));
1048+
validateIsPartialIndex(query13);
1049+
1050+
Query query14 = query("coll").filter(filter("c", "==", 1)).filter(filter("d", "<=", 1));
1051+
validateIsFullIndex(query14);
1052+
1053+
Query query15 =
1054+
query("coll")
1055+
.filter(filter("c", "==", 1))
1056+
.filter(filter("d", ">", 1))
1057+
.orderBy(orderBy("d"));
1058+
validateIsFullIndex(query15);
1059+
}
1060+
1061+
private void validateIsPartialIndex(Query query) {
1062+
validateIndex(query, false);
1063+
}
1064+
1065+
private void validateIsFullIndex(Query query) {
1066+
validateIndex(query, true);
1067+
}
1068+
1069+
private void validateIndex(Query query, boolean validateFullIndex) {
1070+
IndexManager.IndexType indexType = indexManager.getIndexType(query.toTarget());
1071+
assertEquals(
1072+
indexType,
1073+
validateFullIndex ? IndexManager.IndexType.FULL : IndexManager.IndexType.PARTIAL);
1074+
}
1075+
9831076
private void verifySequenceNumber(
9841077
IndexManager indexManager, String collectionGroup, int expectedSequnceNumber) {
9851078
assertEquals(

firebase-firestore/src/test/java/com/google/firebase/firestore/local/SQLiteQueryEngineTest.java

Lines changed: 0 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import static com.google.firebase.firestore.testutil.TestUtil.fieldIndex;
2424
import static com.google.firebase.firestore.testutil.TestUtil.filter;
2525
import static com.google.firebase.firestore.testutil.TestUtil.map;
26-
import static com.google.firebase.firestore.testutil.TestUtil.orderBy;
2726
import static com.google.firebase.firestore.testutil.TestUtil.query;
2827
import static com.google.firebase.firestore.testutil.TestUtil.setMutation;
2928
import static org.junit.Assert.assertEquals;
@@ -88,95 +87,4 @@ public void usesPartialIndexForLimitQueries() throws Exception {
8887
DocumentSet result = expectOptimizedCollectionScan(() -> runQuery(query, SnapshotVersion.NONE));
8988
assertEquals(docSet(query.comparator(), doc2), result);
9089
}
91-
92-
@Test
93-
public void testPartialIndexAndFullIndex() throws Exception {
94-
indexManager.addFieldIndex(fieldIndex("coll", "a", Kind.ASCENDING));
95-
indexManager.addFieldIndex(fieldIndex("coll", "b", Kind.ASCENDING));
96-
indexManager.addFieldIndex(fieldIndex("coll", "c", Kind.ASCENDING, "d", Kind.ASCENDING));
97-
98-
Query query1 = query("coll").filter(filter("a", "==", 1));
99-
validateIsFullIndex(query1);
100-
101-
Query query2 = query("coll").filter(filter("b", "==", 1));
102-
validateIsFullIndex(query2);
103-
104-
Query query3 = query("coll").filter(filter("a", "==", 1)).orderBy(orderBy("a"));
105-
validateIsFullIndex(query3);
106-
107-
Query query4 = query("coll").filter(filter("b", "==", 1)).orderBy(orderBy("b"));
108-
validateIsFullIndex(query4);
109-
110-
Query query5 = query("coll").filter(filter("a", "==", 1)).filter(filter("b", "==", 1));
111-
validateIsPartialIndex(query5);
112-
113-
Query query6 = query("coll").filter(filter("a", "==", 1)).orderBy(orderBy("b"));
114-
validateIsPartialIndex(query6);
115-
116-
Query query7 = query("coll").filter(filter("b", "==", 1)).orderBy(orderBy("a"));
117-
validateIsPartialIndex(query7);
118-
119-
Query query8 = query("coll").filter(filter("c", "==", 1)).filter(filter("d", "==", 1));
120-
validateIsFullIndex(query8);
121-
122-
Query query9 =
123-
query("coll")
124-
.filter(filter("c", "==", 1))
125-
.filter(filter("d", "==", 1))
126-
.orderBy(orderBy("c"));
127-
validateIsFullIndex(query9);
128-
129-
Query query10 =
130-
query("coll")
131-
.filter(filter("c", "==", 1))
132-
.filter(filter("d", "==", 1))
133-
.orderBy(orderBy("d"));
134-
validateIsFullIndex(query10);
135-
136-
Query query11 =
137-
query("coll")
138-
.filter(filter("c", "==", 1))
139-
.filter(filter("d", "==", 1))
140-
.orderBy(orderBy("c"))
141-
.orderBy(orderBy("d"));
142-
validateIsFullIndex(query11);
143-
144-
Query query12 =
145-
query("coll")
146-
.filter(filter("c", "==", 1))
147-
.filter(filter("d", "==", 1))
148-
.orderBy(orderBy("d"))
149-
.orderBy(orderBy("c"));
150-
validateIsFullIndex(query12);
151-
152-
Query query13 =
153-
query("coll")
154-
.filter(filter("c", "==", 1))
155-
.filter(filter("d", "==", 1))
156-
.orderBy(orderBy("e"));
157-
validateIsPartialIndex(query13);
158-
159-
Query query14 = query("coll").filter(filter("c", "==", 1)).filter(filter("d", "<=", 1));
160-
validateIsFullIndex(query14);
161-
162-
Query query15 =
163-
query("coll")
164-
.filter(filter("c", "==", 1))
165-
.filter(filter("d", ">", 1))
166-
.orderBy(orderBy("d"));
167-
validateIsFullIndex(query15);
168-
}
169-
170-
private void validateIsPartialIndex(Query query) {
171-
validateIndex(query, false);
172-
}
173-
174-
private void validateIsFullIndex(Query query) {
175-
validateIndex(query, true);
176-
}
177-
178-
private void validateIndex(Query query, boolean validateFullIndex) {
179-
IndexType indexType = indexManager.getIndexType(query.toTarget());
180-
assertEquals(indexType, validateFullIndex ? IndexType.FULL : IndexType.PARTIAL);
181-
}
18290
}

0 commit comments

Comments
 (0)