| 707 | class HashJoinNode : public ExecNode, public TracedNode { |
| 708 | public: |
| 709 | HashJoinNode(ExecPlan* plan, NodeVector inputs, const HashJoinNodeOptions& join_options, |
| 710 | std::shared_ptr<Schema> output_schema, |
| 711 | std::unique_ptr<HashJoinSchema> schema_mgr, Expression filter, |
| 712 | std::unique_ptr<HashJoinImpl> impl) |
| 713 | : ExecNode(plan, std::move(inputs), {"left", "right"}, |
| 714 | /*output_schema=*/std::move(output_schema)), |
| 715 | TracedNode(this), |
| 716 | join_type_(join_options.join_type), |
| 717 | key_cmp_(join_options.key_cmp), |
| 718 | filter_(std::move(filter)), |
| 719 | schema_mgr_(std::move(schema_mgr)), |
| 720 | impl_(std::move(impl)), |
| 721 | disable_bloom_filter_(join_options.disable_bloom_filter) { |
| 722 | complete_.store(false); |
| 723 | } |
| 724 | |
| 725 | static Result<ExecNode*> Make(ExecPlan* plan, std::vector<ExecNode*> inputs, |
| 726 | const ExecNodeOptions& options) { |