#pragma once #include #include #include #include #include namespace NSQLComplete { struct TYqlContext { THashMap> TablesByCluster; [[nodiscard]] THashSet Clusters() const; }; class IYqlAnalysis: public TThrRefBase { public: using TPtr = TIntrusivePtr; virtual TYqlContext Analyze(NYql::TExprNode::TPtr root, NYql::TExprContext& ctx) const = 0; TMaybe Analyze(NYql::TAstNode& root, NYql::TIssues& issues) const; }; IYqlAnalysis::TPtr MakeYqlAnalysis(); } // namespace NSQLComplete