| 10 | namespace processor { |
| 11 | |
| 12 | struct NodeSetInfo { |
| 13 | DataPos nodeIDPos; |
| 14 | DataPos columnVectorPos; |
| 15 | |
| 16 | std::unique_ptr<evaluator::ExpressionEvaluator> evaluator; |
| 17 | |
| 18 | common::ValueVector* nodeIDVector = nullptr; |
| 19 | common::ValueVector* columnVector = nullptr; |
| 20 | common::ValueVector* columnDataVector = nullptr; |
| 21 | |
| 22 | NodeSetInfo(DataPos nodeIDPos, DataPos columnVectorPos, |
| 23 | std::unique_ptr<evaluator::ExpressionEvaluator> evaluator) |
| 24 | : nodeIDPos{nodeIDPos}, columnVectorPos{columnVectorPos}, evaluator{std::move(evaluator)} {} |
| 25 | EXPLICIT_COPY_DEFAULT_MOVE(NodeSetInfo); |
| 26 | |
| 27 | void init(const ResultSet& resultSet, main::ClientContext* context); |
| 28 | |
| 29 | private: |
| 30 | NodeSetInfo(const NodeSetInfo& other) |
| 31 | : nodeIDPos{other.nodeIDPos}, columnVectorPos{other.columnVectorPos}, |
| 32 | evaluator{other.evaluator->copy()} {} |
| 33 | }; |
| 34 | |
| 35 | struct NodeTableSetInfo { |
| 36 | storage::NodeTable* table; |