#pragma once #include #include #include #include #include namespace DB { class ASTFunction; class ASTSelectWithUnionQuery; class SelectIntersectExceptQueryMatcher { public: struct Data { const SetOperationMode intersect_default_mode; const SetOperationMode except_default_mode; }; static bool needChildVisit(const ASTPtr &, const ASTPtr &) { return true; } static void visit(ASTPtr & ast, Data &); static void visit(ASTSelectWithUnionQuery &, Data &); }; /// Visit children first. using SelectIntersectExceptQueryVisitor = InDepthNodeVisitor; }