9 #ifndef _JOINALGO_JOINALGOTABLE_H_
10 #define _JOINALGO_JOINALGOTABLE_H_
27 std::vector<AbstractJoinAlgoPtr> algos;
28 std::map<std::string, AbstractJoinAlgoPtr> algoMap;
40 if (idx < algos.size()) {
50 AbstractJoinAlgoPtr
findAlgo(std::string name) {
57 if (algoMap.count(name)) {
68 algos.push_back(anew);
69 return algos.size() - 1;
81 #define newJoinAlgoTable std::make_shared<JoinAlgoTable>
The table contains all supported algos.
Definition: JoinAlgoTable.h:25
size_t registerNewAlgo(AbstractJoinAlgoPtr anew)
To register a new algorithm.
Definition: JoinAlgoTable.h:67
AbstractJoinAlgoPtr findAlgo(std::string name)
find a algorithm in the table according to its index
Definition: JoinAlgoTable.h:50
AbstractJoinAlgoPtr findAlgo(size_t idx)
find a algorithm in the table according to its index
Definition: JoinAlgoTable.h:39
join_algo_index_t
The system default index for join algorithms.
Definition: JoinAlgoTable.h:87
Definition: OperatorTable.cpp:7
std::shared_ptr< JoinAlgoTable > JoinAlgoTablePtr
The class to describe a shared pointer to JoinAlgoTable.
Definition: JoinAlgoTable.h:76
@ JOINALGO_NESTEDLOOP
Definition: JoinAlgoTable.h:95
@ JOINALGO_NPJ_SINGLE
Definition: JoinAlgoTable.h:103
@ JOINALGO_NULL
Definition: JoinAlgoTable.h:91
@ JOINALGO_NPJ
Definition: JoinAlgoTable.h:99