-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCombine.h
34 lines (29 loc) · 1.04 KB
/
Combine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include "../Definitions.h"
#include "../Schema.h"
#include "Operator.h"
namespace Operator
{
class _Combine : public _TransformingOperator
{
public:
_Combine(
std::shared_ptr<_Datatype> newDatatype,
std::shared_ptr<_Datatype> leftDatatype,
std::shared_ptr<_Datatype> rightDatatype,
std::shared_ptr<AggregationStrategy::_AggregationStrategy> aggregationStrategy)
: _newDatatype(newDatatype)
, _leftDatatype(leftDatatype)
, _rightDatatype(rightDatatype)
, _aggregationStrategy(aggregationStrategy)
{}
std::string getCode() override;
std::shared_ptr<_Schema> getOutputSchema() override;
std::set<std::string> getHeaders() override;
using BaseType = _TransformingOperator;
private:
std::shared_ptr<_Datatype> _newDatatype, _leftDatatype, _rightDatatype;
std::shared_ptr<AggregationStrategy::_AggregationStrategy> _aggregationStrategy;
};
DECLARE_SHARED_PTR(Combine);
}