5 #ifndef JODA_DISTINCTAGGREGATOR_H
6 #define JODA_DISTINCTAGGREGATOR_H
8 #include <unordered_set>
15 std::vector<std::unique_ptr<IValueProvider>> &&
params,
22 std::unique_ptr<IAggregator>
duplicate()
const override;
25 const std::string
getName()
const override;
27 static constexpr
auto getName_() {
return "DISTINCT"; }
33 std::unordered_set<std::string>
strSet = {};
34 std::unordered_set<double>
numSet = {};
rapidjson::MemoryPoolAllocator< RJBaseAlloc > RJMemoryPoolAlloc
Definition: RJFwd.h:26
rapidjson::GenericValue< RJChar, RJMemoryPoolAlloc > RJValue
Definition: RJFwd.h:29
Definition: RapidJsonDocument.h:22
Definition: DistinctAggregator.h:12
bool numEnabled
Definition: DistinctAggregator.h:32
bool boolEnabled
Definition: DistinctAggregator.h:31
bool stringEnabled
Definition: DistinctAggregator.h:30
const std::string getName() const override
Definition: DistinctAggregator.cpp:92
std::unique_ptr< IAggregator > duplicate() const override
Definition: DistinctAggregator.cpp:51
bool hasTrue
Definition: DistinctAggregator.h:35
std::unordered_set< double > numSet
Definition: DistinctAggregator.h:34
DistinctAggregator(const std::string &toPointer, std::vector< std::unique_ptr< IValueProvider >> &¶ms, bool stringEnabled=true, bool boolEnabled=true, bool numEnabled=true)
Definition: DistinctAggregator.cpp:56
bool hasFalse
Definition: DistinctAggregator.h:36
RJValue terminate(RJMemoryPoolAlloc &alloc) override
Definition: DistinctAggregator.cpp:19
void accumulate(const RapidJsonDocument &json, RJMemoryPoolAlloc &alloc) override
Definition: DistinctAggregator.cpp:67
void merge(IAggregator *other) override
Definition: DistinctAggregator.cpp:9
std::unordered_set< std::string > strSet
Definition: DistinctAggregator.h:33
static constexpr auto getName_()
Definition: DistinctAggregator.h:27
Definition: IAggregator.h:25
std::vector< std::unique_ptr< IValueProvider > > params
Definition: IAggregator.h:124
std::string toPointer
Definition: IAggregator.h:120
Definition: AttributeStatAggregator.h:12