diff options
author | vvvv <vvvv@yandex-team.com> | 2025-02-13 23:37:03 +0300 |
---|---|---|
committer | vvvv <vvvv@yandex-team.com> | 2025-02-14 00:12:49 +0300 |
commit | 123244a25618fe7f723fd302250f69ae07f5d3a6 (patch) | |
tree | 3f54ad922faf6b0ab1f8229bab954796a398ce53 /yql/essentials/sql/v0/sql.cpp | |
parent | c0858c82f158f2a02cae4ac3acfbe486990a6c72 (diff) | |
download | ydb-123244a25618fe7f723fd302250f69ae07f5d3a6.tar.gz |
Introduced SQL ITranslator
commit_hash:f58b2fb436f14fc4a11ce2e315f10d71e6d1ec77
Diffstat (limited to 'yql/essentials/sql/v0/sql.cpp')
-rw-r--r-- | yql/essentials/sql/v0/sql.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/yql/essentials/sql/v0/sql.cpp b/yql/essentials/sql/v0/sql.cpp index caf61bdd0e1..f83a016b228 100644 --- a/yql/essentials/sql/v0/sql.cpp +++ b/yql/essentials/sql/v0/sql.cpp @@ -1,5 +1,6 @@ #include "sql.h" +#include <yql/essentials/sql/v0/lexer/lexer.h> #include "context.h" #include "node.h" @@ -5315,4 +5316,43 @@ NYql::TAstParseResult SqlToYql(const TString& query, const NSQLTranslation::TTra return res; } +class TTranslator : public NSQLTranslation::ITranslator { +public: + NSQLTranslation::ILexer::TPtr MakeLexer(const NSQLTranslation::TTranslationSettings& settings) final { + Y_UNUSED(settings); + return NSQLTranslationV0::MakeLexer(); + } + + NYql::TAstParseResult TextToAst(const TString& query, const NSQLTranslation::TTranslationSettings& settings, + NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) final { + Y_UNUSED(stmtParseInfo); + return SqlToYql(query, settings, warningRules); + } + + google::protobuf::Message* TextToMessage(const TString& query, const TString& queryName, + NYql::TIssues& issues, size_t maxErrors, const NSQLTranslation::TTranslationSettings& settings) final { + return SqlAST(query, queryName, issues, maxErrors, settings.Arena); + } + + NYql::TAstParseResult TextAndMessageToAst(const TString& query, const google::protobuf::Message& protoAst, + const NSQLTranslation::TSQLHints& hints, const NSQLTranslation::TTranslationSettings& settings) final { + Y_UNUSED(query); + Y_UNUSED(hints); + return SqlASTToYql(protoAst, settings); + } + + TVector<NYql::TAstParseResult> TextToManyAst(const TString& query, const NSQLTranslation::TTranslationSettings& settings, + NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) final { + Y_UNUSED(query); + Y_UNUSED(settings); + Y_UNUSED(warningRules); + Y_UNUSED(stmtParseInfo); + return {}; + } +}; + +NSQLTranslation::TTranslatorPtr MakeTranslator() { + return MakeIntrusive<TTranslator>(); +} + } // namespace NSQLTranslationV0 |