#pragma once #include #include #include namespace NSQLFormat { constexpr ui32 OneIndent = 4; enum class EFormatMode { Pretty, Obfuscate }; class ISqlFormatter { public: using TPtr = THolder; virtual bool Format(const TString& query, TString& formattedQuery, NYql::TIssues& issues, EFormatMode mode = EFormatMode::Pretty) = 0; virtual ~ISqlFormatter() = default; }; ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslation::TTranslationSettings& settings = {}); // insert spaces and comments between each tokens TString MutateQuery(const TString& query, const NSQLTranslation::TTranslationSettings& settings = {}); bool SqlFormatSimple(const TString& query, TString& formattedQuery, TString& error); THashSet GetKeywords(); }