2017-03-12 03:49:22 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
#include "query/frontend/logical/operator.hpp"
|
|
|
|
|
|
|
|
namespace query {
|
|
|
|
|
2017-03-16 16:45:55 +08:00
|
|
|
class Query;
|
|
|
|
class SymbolTable;
|
2017-03-16 16:28:16 +08:00
|
|
|
|
2017-03-16 16:45:55 +08:00
|
|
|
// Returns the root of LogicalOperator tree. The tree is constructed by
|
|
|
|
// traversing the given AST Query node. SymbolTable is used to determine inputs
|
|
|
|
// and outputs of certain operators.
|
2017-03-16 22:00:34 +08:00
|
|
|
std::unique_ptr<LogicalOperator>
|
|
|
|
MakeLogicalPlan(Query &query, const SymbolTable &symbol_table);
|
2017-03-12 03:49:22 +08:00
|
|
|
}
|