#pragma once #include namespace DB { class ASTSelectIntersectExceptQuery : public ASTQueryWithOutput { public: String getID(char) const override { return "SelectIntersectExceptQuery"; } ASTPtr clone() const override; void formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override; const char * getQueryKindString() const override { return "SelectIntersectExcept"; } enum class Operator { UNKNOWN, INTERSECT, EXCEPT }; using Operators = std::vector; ASTPtr list_of_selects; Operators list_of_operators; /// Final operator after applying visitor. Operator final_operator = Operator::UNKNOWN; }; }