//===----------------------------------------------------------------------===// // DuckDB // // duckdb/main/relation/query_relation.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/main/relation.hpp" #include "duckdb/parser/query_node.hpp" namespace duckdb { class SelectStatement; class QueryRelation : public Relation { public: QueryRelation(const std::shared_ptr &context, unique_ptr select_stmt, string alias); ~QueryRelation(); unique_ptr select_stmt; string alias; vector columns; public: static unique_ptr ParseStatement(ClientContext &context, const string &query, const string &error); unique_ptr GetQueryNode() override; unique_ptr GetTableRef() override; const vector &Columns() override; string ToString(idx_t depth) override; string GetAlias() override; private: unique_ptr GetSelectStatement(); }; } // namespace duckdb