#pragma once #include #include #include namespace DB { class ASTFunction; struct ASTTableExpression; class MarkTableIdentifiersMatcher { public: using Visitor = InDepthNodeVisitor; struct Data { const Aliases & aliases; }; static bool needChildVisit(ASTPtr & node, const ASTPtr & child); static void visit(ASTPtr & ast, Data & data); private: static void visit(ASTTableExpression & table, ASTPtr &, Data &); static void visit(const ASTFunction & func, ASTPtr &, Data &); }; using MarkTableIdentifiersVisitor = MarkTableIdentifiersMatcher::Visitor; }