mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
PartialPlanGenerator.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <iostream>
6#include <vector>
7
8
9namespace m {
10
11/* Forward declarations. */
12struct QueryGraph;
13
18{
20 using partial_plan_type = std::vector<Subproblem>;
21 using callback_type = std::function<void(const partial_plan_type&)>;
22
25 template<typename PlanTable>
26 void for_each_complete_partial_plan(const PlanTable &PT, callback_type callback);
27
28 template<typename PlanTable>
29 void write_partial_plans_JSON(std::ostream &out, const QueryGraph &G, const PlanTable &PT,
30 std::function<void(callback_type)> for_each_partial_plan);
31};
32
33}
‍mutable namespace
Definition: Backend.hpp:10
A partial plan is a set of (potentially incomplete) pairwise disjoint plans.
void for_each_complete_partial_plan(const PlanTable &PT, callback_type callback)
Given a PlanTable with a final plan, enumerate all complete partial plans of this final plan and invo...
void write_partial_plans_JSON(std::ostream &out, const QueryGraph &G, const PlanTable &PT, std::function< void(callback_type)> for_each_partial_plan)
std::vector< Subproblem > partial_plan_type
std::function< void(const partial_plan_type &)> callback_type
The query graph represents all data sources and joins in a graph structure.
Definition: QueryGraph.hpp:172
Implements a small and efficient set over integers in the range of 0 to 63 (including).
Definition: ADT.hpp:26