sql_format.h 910 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <yql/essentials/public/issue/yql_issue.h>
  3. #include <yql/essentials/sql/settings/translation_settings.h>
  4. #include <util/generic/string.h>
  5. namespace NSQLFormat {
  6. constexpr ui32 OneIndent = 4;
  7. enum class EFormatMode {
  8. Pretty,
  9. Obfuscate
  10. };
  11. class ISqlFormatter {
  12. public:
  13. using TPtr = THolder<ISqlFormatter>;
  14. virtual bool Format(const TString& query, TString& formattedQuery, NYql::TIssues& issues,
  15. EFormatMode mode = EFormatMode::Pretty) = 0;
  16. virtual ~ISqlFormatter() = default;
  17. };
  18. ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslation::TTranslationSettings& settings = {});
  19. // insert spaces and comments between each tokens
  20. TString MutateQuery(const TString& query, const NSQLTranslation::TTranslationSettings& settings = {});
  21. bool SqlFormatSimple(const TString& query, TString& formattedQuery, TString& error);
  22. THashSet<TString> GetKeywords();
  23. }