@@ -2821,22 +2821,7 @@ OperationResult Transaction::countCoordinator(std::string const& collectionName,
2821
2821
return OperationResult (res);
2822
2822
}
2823
2823
2824
- VPackBuilder resultBuilder;
2825
- if (aggregate) {
2826
- uint64_t result = 0 ;
2827
- for (auto const & it : count) {
2828
- result += it.second ;
2829
- }
2830
- resultBuilder.add (VPackValue (result));
2831
- } else {
2832
- resultBuilder.openObject ();
2833
- for (auto const & it : count) {
2834
- resultBuilder.add (it.first , VPackValue (it.second ));
2835
- }
2836
- resultBuilder.close ();
2837
- }
2838
-
2839
- return OperationResult (resultBuilder.steal (), nullptr , " " , TRI_ERROR_NO_ERROR, false );
2824
+ return buildCountResult (count, aggregate);
2840
2825
}
2841
2826
#endif
2842
2827
@@ -3611,6 +3596,25 @@ int Transaction::resolveId(char const* handle, size_t length,
3611
3596
3612
3597
return TRI_ERROR_NO_ERROR;
3613
3598
}
3599
+
3600
+ OperationResult Transaction::buildCountResult (std::vector<std::pair<std::string, uint64_t >> const & count, bool aggregate) {
3601
+ VPackBuilder resultBuilder;
3602
+
3603
+ if (aggregate) {
3604
+ uint64_t result = 0 ;
3605
+ for (auto const & it : count) {
3606
+ result += it.second ;
3607
+ }
3608
+ resultBuilder.add (VPackValue (result));
3609
+ } else {
3610
+ resultBuilder.openObject ();
3611
+ for (auto const & it : count) {
3612
+ resultBuilder.add (it.first , VPackValue (it.second ));
3613
+ }
3614
+ resultBuilder.close ();
3615
+ }
3616
+ return OperationResult (resultBuilder.steal (), nullptr , " " , TRI_ERROR_NO_ERROR, false );
3617
+ }
3614
3618
3615
3619
// ////////////////////////////////////////////////////////////////////////////
3616
3620
// / @brief constructor, leases a StringBuffer
0 commit comments