Class Parser::QuerySpec

class QuerySpec : public Parser::QueryExpr

Public Functions

QuerySpec(bool d, std::list<SelectEntry *> *s, std::list<TableRef *> *f, Expr *w, std::list<Expr *> *g, Expr *h)
bool get_is_distinct() const
const std::list<std::unique_ptr<SelectEntry>> &get_select_clause() const
const std::list<std::unique_ptr<TableRef>> &get_from_clause() const
const Expr *get_where_clause() const
const std::list<std::unique_ptr<Expr>> &get_groupby_clause() const
const Expr *get_having_clause() const
void analyze(const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query) const
std::string to_string() const

Private Functions

void analyze_from_clause(const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query) const
void analyze_select_clause(const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query) const
void analyze_where_clause(const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query) const
void analyze_group_by(const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query) const
void analyze_having_clause(const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query) const

Private Members

bool is_distinct_
std::list<std::unique_ptr<SelectEntry>> select_clause_
std::list<std::unique_ptr<TableRef>> from_clause_
std::unique_ptr<Expr> where_clause_
std::list<std::unique_ptr<Expr>> groupby_clause_
std::unique_ptr<Expr> having_clause_