23 #ifndef QUERYENGINE_CARDINALITYESTIMATOR_H
24 #define QUERYENGINE_CARDINALITYESTIMATOR_H
28 #include "../Analyzer/Analyzer.h"
34 : std::runtime_error(
"CardinalityEstimationRequired"),
range_(range) {}
54 virtual const std::list<std::shared_ptr<Analyzer::Expr>>&
getArgument()
const = 0;
67 std::shared_ptr<Analyzer::Expr>
deep_copy()
const override {
91 NDVEstimator(
const std::list<std::shared_ptr<Analyzer::Expr>>& expr_tuple)
94 const std::list<std::shared_ptr<Analyzer::Expr>>&
getArgument()
const override {
101 return "linear_probabilistic_count";
120 std::vector<std::pair<
ResultSetPtr, std::vector<
size_t>>>& results_per_device);
122 #endif // QUERYENGINE_CARDINALITYESTIMATOR_H
size_t getBufferSize() const final
const std::list< std::shared_ptr< Analyzer::Expr > > expr_tuple_
const std::list< std::shared_ptr< Analyzer::Expr > > & getArgument() const override
LargeNDVEstimator(const std::list< std::shared_ptr< Analyzer::Expr >> &expr_tuple)
std::shared_ptr< Analyzer::Expr > deep_copy() const override
CardinalityEstimationRequired(const int64_t range)
virtual std::string getRuntimeFunctionName() const =0
std::string getRuntimeFunctionName() const override
bool operator==(const Expr &rhs) const override
std::shared_ptr< ResultSet > ResultSetPtr
NDVEstimator(const std::list< std::shared_ptr< Analyzer::Expr >> &expr_tuple)
bool g_enable_smem_group_by true
virtual size_t getBufferSize() const =0
size_t getBufferSize() const override
ResultSetPtr reduce_estimator_results(const RelAlgExecutionUnit &ra_exe_unit, std::vector< std::pair< ResultSetPtr, std::vector< size_t >>> &results_per_device)
std::string toString() const override
Execution unit for relational algebra. It's a low-level description of any relational algebra operati...
virtual const std::list< std::shared_ptr< Analyzer::Expr > > & getArgument() const =0