Skip to content

Commit da7f1dd

Browse files
authored
Replace OrderByList by std::vector<OrderBy> (#10402)
* Replace OrderByList by std::vector<OrderBy> * Remove unordered_set * Revert "Remove unordered_set" This reverts commit f9df469.
1 parent e5ad9fd commit da7f1dd

File tree

17 files changed

+130
-539
lines changed

17 files changed

+130
-539
lines changed

Firestore/Example/Firestore.xcodeproj/project.pbxproj

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
095A878BB33211AB52BFAD9F /* leveldb_document_overlay_cache_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = AE89CFF09C6804573841397F /* leveldb_document_overlay_cache_test.cc */; };
6565
0963F6D7B0F9AE1E24B82866 /* path_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 403DBF6EFB541DFD01582AA3 /* path_test.cc */; };
6666
096BA3A3703AC1491F281618 /* index.pb.cc in Sources */ = {isa = PBXBuildFile; fileRef = 395E8B07639E69290A929695 /* index.pb.cc */; };
67-
098191405BA24F9A7E4F80C6 /* append_only_list_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */; };
6867
0A4E1B5E3E853763AE6ED7AE /* grpc_stream_tester.cc in Sources */ = {isa = PBXBuildFile; fileRef = 87553338E42B8ECA05BA987E /* grpc_stream_tester.cc */; };
6968
0A52B47C43B7602EE64F53A7 /* cc_compilation_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1B342370EAE3AA02393E33EB /* cc_compilation_test.cc */; };
7069
0A6FBE65A7FE048BAD562A15 /* FSTGoogleTestTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 54764FAE1FAA21B90085E60A /* FSTGoogleTestTests.mm */; };
@@ -459,8 +458,6 @@
459458
54740A571FC914BA00713A1A /* secure_random_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54740A531FC913E500713A1A /* secure_random_test.cc */; };
460459
54740A581FC914F000713A1A /* autoid_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54740A521FC913E500713A1A /* autoid_test.cc */; };
461460
54764FAF1FAA21B90085E60A /* FSTGoogleTestTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 54764FAE1FAA21B90085E60A /* FSTGoogleTestTests.mm */; };
462-
5477CDEA22EE71C8000FCC1E /* append_only_list_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */; };
463-
5477CDEB22EE71C8000FCC1E /* append_only_list_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */; };
464461
547E9A4222F9EA7300A275E0 /* document_set_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 547E9A4122F9EA7300A275E0 /* document_set_test.cc */; };
465462
547E9A4322F9EA7300A275E0 /* document_set_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 547E9A4122F9EA7300A275E0 /* document_set_test.cc */; };
466463
547E9A4422F9EA7300A275E0 /* document_set_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 547E9A4122F9EA7300A275E0 /* document_set_test.cc */; };
@@ -560,7 +557,6 @@
560557
55E84644D385A70E607A0F91 /* leveldb_local_store_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5FF903AEFA7A3284660FA4C5 /* leveldb_local_store_test.cc */; };
561558
568EC1C0F68A7B95E57C8C6C /* leveldb_key_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54995F6E205B6E12004EFFA0 /* leveldb_key_test.cc */; };
562559
56D85436D3C864B804851B15 /* string_format_apple_test.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CFD366B783AE27B9E79EE7A /* string_format_apple_test.mm */; };
563-
57BDB8DBEDEC4C61DB497CB4 /* append_only_list_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */; };
564560
583DF65751B7BBD0A222CAB4 /* byte_stream_cpp_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 01D10113ECC5B446DB35E96D /* byte_stream_cpp_test.cc */; };
565561
58693C153EC597BC25EE9648 /* firebase_auth_credentials_provider_test.mm in Sources */ = {isa = PBXBuildFile; fileRef = F869D85E900E5AF6CD02E2FC /* firebase_auth_credentials_provider_test.mm */; };
566562
58B84B550725D9812729C7F7 /* FIRTransactionOptionsTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = CF39ECA1293D21A0A2AB2626 /* FIRTransactionOptionsTests.mm */; };
@@ -998,7 +994,6 @@
998994
AF4CD9DB5A7D4516FC54892B /* leveldb_lru_garbage_collector_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B629525F7A1AAC1AB765C74F /* leveldb_lru_garbage_collector_test.cc */; };
999995
AF6D6C47F9A25C65BFDCBBA0 /* field_path_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B686F2AD2023DDB20028D6BE /* field_path_test.cc */; };
1000996
AF81B6A91987826426F18647 /* remote_store_spec_test.json in Resources */ = {isa = PBXBuildFile; fileRef = 3B843E4A1F3930A400548890 /* remote_store_spec_test.json */; };
1001-
AFAC87E03815769ABB11746F /* append_only_list_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */; };
1002997
AFB0ACCF130713DF6495E110 /* writer_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = BC3C788D290A935C353CEAA1 /* writer_test.cc */; };
1003998
AFB2455806D7C4100C16713B /* object_value_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 214877F52A705012D6720CA0 /* object_value_test.cc */; };
1004999
AFE84E7B0C356CD2A113E56E /* status_testing.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3CAA33F964042646FDDAF9F9 /* status_testing.cc */; };
@@ -1007,7 +1002,6 @@
10071002
B0D10C3451EDFB016A6EAF03 /* writer_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = BC3C788D290A935C353CEAA1 /* writer_test.cc */; };
10081003
B15D17049414E2F5AE72C9C6 /* memory_local_store_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F6CA0C5638AB6627CB5B4CF4 /* memory_local_store_test.cc */; };
10091004
B192F30DECA8C28007F9B1D0 /* array_sorted_map_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54EB764C202277B30088B8F3 /* array_sorted_map_test.cc */; };
1010-
B1A4D8A731EC0A0B16CC411A /* append_only_list_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */; };
10111005
B220E091D8F4E6DE1EA44F57 /* executor_libdispatch_test.mm in Sources */ = {isa = PBXBuildFile; fileRef = B6FB4689208F9B9100554BA2 /* executor_libdispatch_test.mm */; };
10121006
B235E260EA0DCB7BAC04F69B /* field_path_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = B686F2AD2023DDB20028D6BE /* field_path_test.cc */; };
10131007
B28ACC69EB1F232AE612E77B /* async_testing.cc in Sources */ = {isa = PBXBuildFile; fileRef = 872C92ABD71B12784A1C5520 /* async_testing.cc */; };
@@ -1522,7 +1516,6 @@
15221516
54740A521FC913E500713A1A /* autoid_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = autoid_test.cc; sourceTree = "<group>"; };
15231517
54740A531FC913E500713A1A /* secure_random_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = secure_random_test.cc; sourceTree = "<group>"; };
15241518
54764FAE1FAA21B90085E60A /* FSTGoogleTestTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTGoogleTestTests.mm; sourceTree = "<group>"; };
1525-
5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = append_only_list_test.cc; sourceTree = "<group>"; };
15261519
547E9A4122F9EA7300A275E0 /* document_set_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = document_set_test.cc; sourceTree = "<group>"; };
15271520
548DB928200D59F600E00ABC /* comparison_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = comparison_test.cc; sourceTree = "<group>"; };
15281521
5491BC711FB44593008B3588 /* FSTIntegrationTestCase.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTIntegrationTestCase.mm; sourceTree = "<group>"; };
@@ -2224,7 +2217,6 @@
22242217
54EB764B202277970088B8F3 /* immutable */ = {
22252218
isa = PBXGroup;
22262219
children = (
2227-
5477CDE922EE71C8000FCC1E /* append_only_list_test.cc */,
22282220
54EB764C202277B30088B8F3 /* array_sorted_map_test.cc */,
22292221
549CCA4E20A36DBB00BCEB75 /* sorted_map_test.cc */,
22302222
549CCA4C20A36DBB00BCEB75 /* sorted_set_test.cc */,
@@ -3639,7 +3631,6 @@
36393631
C8BA36C8B5E26C173F91E677 /* aggregation_result.pb.cc in Sources */,
36403632
45939AFF906155EA27D281AB /* annotations.pb.cc in Sources */,
36413633
FF3405218188DFCE586FB26B /* app_testing.mm in Sources */,
3642-
57BDB8DBEDEC4C61DB497CB4 /* append_only_list_test.cc in Sources */,
36433634
B192F30DECA8C28007F9B1D0 /* array_sorted_map_test.cc in Sources */,
36443635
4F857404731D45F02C5EE4C3 /* async_queue_libdispatch_test.mm in Sources */,
36453636
83A9CD3B6E791A860CE81FA1 /* async_queue_std_test.cc in Sources */,
@@ -3847,7 +3838,6 @@
38473838
156429A2993B86A905A42D96 /* aggregation_result.pb.cc in Sources */,
38483839
1C19D796DB6715368407387A /* annotations.pb.cc in Sources */,
38493840
6EEA00A737690EF82A3C91C6 /* app_testing.mm in Sources */,
3850-
AFAC87E03815769ABB11746F /* append_only_list_test.cc in Sources */,
38513841
1291D9F5300AFACD1FBD262D /* array_sorted_map_test.cc in Sources */,
38523842
4AD9809C9CE9FA09AC40992F /* async_queue_libdispatch_test.mm in Sources */,
38533843
38208AC761FF994BA69822BE /* async_queue_std_test.cc in Sources */,
@@ -4071,7 +4061,6 @@
40714061
0EC3921AE220410F7394729B /* aggregation_result.pb.cc in Sources */,
40724062
276A563D546698B6AAC20164 /* annotations.pb.cc in Sources */,
40734063
7B8D7BAC1A075DB773230505 /* app_testing.mm in Sources */,
4074-
098191405BA24F9A7E4F80C6 /* append_only_list_test.cc in Sources */,
40754064
DC1C711290E12F8EF3601151 /* array_sorted_map_test.cc in Sources */,
40764065
9B2CD4CBB1DFE8BC3C81A335 /* async_queue_libdispatch_test.mm in Sources */,
40774066
342724CA250A65E23CB133AC /* async_queue_std_test.cc in Sources */,
@@ -4295,7 +4284,6 @@
42954284
DF983A9C1FBF758AF3AF110D /* aggregation_result.pb.cc in Sources */,
42964285
EA46611779C3EEF12822508C /* annotations.pb.cc in Sources */,
42974286
8F4F40E9BC7ED588F67734D5 /* app_testing.mm in Sources */,
4298-
B1A4D8A731EC0A0B16CC411A /* append_only_list_test.cc in Sources */,
42994287
A6E236CE8B3A47BE32254436 /* array_sorted_map_test.cc in Sources */,
43004288
1CB8AEFBF3E9565FF9955B50 /* async_queue_libdispatch_test.mm in Sources */,
43014289
AB2BAB0BD77FF05CC26FCF75 /* async_queue_std_test.cc in Sources */,
@@ -4513,7 +4501,6 @@
45134501
B81B6F327B5E3FE820DC3FB3 /* aggregation_result.pb.cc in Sources */,
45144502
618BBEAF20B89AAC00B5BCE7 /* annotations.pb.cc in Sources */,
45154503
5467FB08203E6A44009C9584 /* app_testing.mm in Sources */,
4516-
5477CDEA22EE71C8000FCC1E /* append_only_list_test.cc in Sources */,
45174504
54EB764D202277B30088B8F3 /* array_sorted_map_test.cc in Sources */,
45184505
B6FB4684208EA0EC00554BA2 /* async_queue_libdispatch_test.mm in Sources */,
45194506
B6FB4685208EA0F000554BA2 /* async_queue_std_test.cc in Sources */,
@@ -4756,7 +4743,6 @@
47564743
1A3D8028303B45FCBB21CAD3 /* aggregation_result.pb.cc in Sources */,
47574744
02EB33CC2590E1484D462912 /* annotations.pb.cc in Sources */,
47584745
EBFC611B1BF195D0EC710AF4 /* app_testing.mm in Sources */,
4759-
5477CDEB22EE71C8000FCC1E /* append_only_list_test.cc in Sources */,
47604746
FCA48FB54FC50BFDFDA672CD /* array_sorted_map_test.cc in Sources */,
47614747
45A5504D33D39C6F80302450 /* async_queue_libdispatch_test.mm in Sources */,
47624748
6F914209F46E6552B5A79570 /* async_queue_std_test.cc in Sources */,

Firestore/Source/API/FIRQuery.mm

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@
8181
using firebase::firestore::core::CompositeFilter;
8282
using firebase::firestore::core::ListenOptions;
8383
using firebase::firestore::core::OrderBy;
84-
using firebase::firestore::core::OrderByList;
8584
using firebase::firestore::core::QueryListener;
8685
using firebase::firestore::core::ViewSnapshot;
8786
using firebase::firestore::google_firestore_v1_ArrayValue;
@@ -574,7 +573,7 @@ - (Bound)boundFromSnapshot:(FIRDocumentSnapshot *)snapshot isInclusive:(BOOL)isI
574573
}
575574
const Document &document = *snapshot.internalDocument;
576575
const DatabaseId &databaseID = self.firestore.databaseID;
577-
const OrderByList &order_bys = self.query.order_bys();
576+
const std::vector<OrderBy> &order_bys = self.query.order_bys();
578577

579578
SharedMessage<google_firestore_v1_ArrayValue> components{{}};
580579
components->values_count = CheckedSize(order_bys.size());
@@ -615,7 +614,7 @@ - (Bound)boundFromSnapshot:(FIRDocumentSnapshot *)snapshot isInclusive:(BOOL)isI
615614
/** Converts a list of field values to an Bound. */
616615
- (Bound)boundFromFieldValues:(NSArray<id> *)fieldValues isInclusive:(BOOL)isInclusive {
617616
// Use explicit sort order because it has to match the query the user made
618-
const OrderByList &explicitSortOrders = self.query.explicit_order_bys();
617+
const std::vector<OrderBy> &explicitSortOrders = self.query.explicit_order_bys();
619618
if (fieldValues.count > explicitSortOrders.size()) {
620619
ThrowInvalidArgument("Invalid query. You are trying to start or end a query using more values "
621620
"than were specified in the order by.");

Firestore/core/src/bundle/bundle_serializer.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ using core::FieldFilter;
5353
using core::Filter;
5454
using core::LimitType;
5555
using core::OrderBy;
56-
using core::OrderByList;
5756
using core::Target;
5857
using model::DeepClone;
5958
using model::Document;
@@ -242,8 +241,8 @@ Filter DecodeUnaryFilter(JsonReader& reader, const json& filter) {
242241
return InvalidFilter();
243242
}
244243

245-
OrderByList DecodeOrderBy(JsonReader& reader, const json& query) {
246-
OrderByList result;
244+
std::vector<OrderBy> DecodeOrderBy(JsonReader& reader, const json& query) {
245+
std::vector<OrderBy> result;
247246
std::vector<json> default_order_by;
248247
for (const auto& order_by :
249248
reader.OptionalArray("orderBy", query, default_order_by)) {
@@ -261,7 +260,7 @@ OrderByList DecodeOrderBy(JsonReader& reader, const json& query) {
261260
? Direction::Ascending
262261
: Direction::Descending;
263262

264-
result = result.push_back(OrderBy(std::move(path), direction));
263+
result.emplace_back(std::move(path), direction);
265264
}
266265

267266
return result;

Firestore/core/src/core/bound.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#include <ostream>
2020

2121
#include "Firestore/core/src/core/order_by.h"
22-
#include "Firestore/core/src/immutable/append_only_list.h"
2322
#include "Firestore/core/src/model/document.h"
2423
#include "Firestore/core/src/model/document_key.h"
2524
#include "Firestore/core/src/model/value_util.h"
@@ -45,15 +44,15 @@ Bound Bound::FromValue(SharedMessage<google_firestore_v1_ArrayValue> position,
4544
return Bound(std::move(position), inclusive);
4645
}
4746

48-
bool Bound::SortsBeforeDocument(const OrderByList& order_by,
47+
bool Bound::SortsBeforeDocument(const std::vector<OrderBy>& order_by,
4948
const model::Document& document) const {
5049
auto comparison = CompareToDocument(order_by, document);
5150
return inclusive_ ? (comparison == ComparisonResult::Ascending ||
5251
comparison == ComparisonResult::Same)
5352
: (comparison == ComparisonResult::Ascending);
5453
}
5554

56-
bool Bound::SortsAfterDocument(const OrderByList& order_by,
55+
bool Bound::SortsAfterDocument(const std::vector<OrderBy>& order_by,
5756
const model::Document& document) const {
5857
auto comparison = CompareToDocument(order_by, document);
5958
return inclusive_ ? (comparison == ComparisonResult::Descending ||
@@ -62,7 +61,8 @@ bool Bound::SortsAfterDocument(const OrderByList& order_by,
6261
}
6362

6463
ComparisonResult Bound::CompareToDocument(
65-
const OrderByList& order_by, const model::Document& document) const {
64+
const std::vector<OrderBy>& order_by,
65+
const model::Document& document) const {
6666
HARD_ASSERT(position_->values_count <= order_by.size(),
6767
"Bound has more components than the provided order by.");
6868

Firestore/core/src/core/bound.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <memory>
2222
#include <string>
2323
#include <utility>
24+
#include <vector>
2425

2526
#include "Firestore/Protos/nanopb/google/firestore/v1/document.nanopb.h"
2627
#include "Firestore/core/src/core/core_fwd.h"
@@ -75,14 +76,14 @@ class Bound {
7576
* Returns true if the given document comes before this bound using the
7677
* provided sort order.
7778
*/
78-
bool SortsBeforeDocument(const OrderByList& order_by,
79+
bool SortsBeforeDocument(const std::vector<OrderBy>& order_by,
7980
const model::Document& document) const;
8081

8182
/**
8283
* Returns true if the given document comes after this bound using the
8384
* provided sort order.
8485
*/
85-
bool SortsAfterDocument(const OrderByList& order_by,
86+
bool SortsAfterDocument(const std::vector<OrderBy>& order_by,
8687
const model::Document& document) const;
8788

8889
std::string PositionString() const;
@@ -98,7 +99,8 @@ class Bound {
9899
}
99100

100101
util::ComparisonResult CompareToDocument(
101-
const OrderByList& order_by, const model::Document& document) const;
102+
const std::vector<OrderBy>& order_by,
103+
const model::Document& document) const;
102104

103105
nanopb::SharedMessage<google_firestore_v1_ArrayValue> position_;
104106
bool inclusive_;

Firestore/core/src/core/core_fwd.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ class EventListener;
7272

7373
using CollectionGroupId = std::shared_ptr<const std::string>;
7474

75-
using OrderByList = immutable::AppendOnlyList<OrderBy>;
76-
7775
using TransactionResultCallback = util::StatusCallback;
7876

7977
using TransactionUpdateCallback = std::function<void(

Firestore/core/src/core/order_by.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,6 @@ class OrderBy {
8989
Direction direction_;
9090
};
9191

92-
/** A list of OrderBys, as used in Queries and elsewhere. */
93-
using OrderByList = immutable::AppendOnlyList<OrderBy>;
94-
9592
std::ostream& operator<<(std::ostream& os, const OrderBy& order);
9693

9794
bool operator==(const OrderBy& lhs, const OrderBy& rhs);

0 commit comments

Comments
 (0)