aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v0/sql.cpp
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2025-02-13 23:37:03 +0300
committervvvv <vvvv@yandex-team.com>2025-02-14 00:12:49 +0300
commit123244a25618fe7f723fd302250f69ae07f5d3a6 (patch)
tree3f54ad922faf6b0ab1f8229bab954796a398ce53 /yql/essentials/sql/v0/sql.cpp
parentc0858c82f158f2a02cae4ac3acfbe486990a6c72 (diff)
downloadydb-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.cpp40
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