aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/sql.h
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/sql.h
parentc0858c82f158f2a02cae4ac3acfbe486990a6c72 (diff)
downloadydb-123244a25618fe7f723fd302250f69ae07f5d3a6.tar.gz
Introduced SQL ITranslator
commit_hash:f58b2fb436f14fc4a11ce2e315f10d71e6d1ec77
Diffstat (limited to 'yql/essentials/sql/sql.h')
-rw-r--r--yql/essentials/sql/sql.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/yql/essentials/sql/sql.h b/yql/essentials/sql/sql.h
index 891ea4f684..250cefc2b1 100644
--- a/yql/essentials/sql/sql.h
+++ b/yql/essentials/sql/sql.h
@@ -7,6 +7,7 @@
#include <yql/essentials/public/issue/yql_issue_manager.h>
#include <yql/essentials/ast/yql_ast.h>
#include <yql/essentials/sql/settings/translation_settings.h>
+#include <yql/essentials/sql/settings/translator.h>
#include <util/generic/hash.h>
#include <util/generic/hash_set.h>
@@ -15,16 +16,37 @@
namespace NSQLTranslation {
+ struct TTranslators {
+ TTranslatorPtr const V0;
+ TTranslatorPtr const V1;
+ TTranslatorPtr const PG;
+
+ TTranslators(TTranslatorPtr v0, TTranslatorPtr v1, TTranslatorPtr pg);
+ };
+
+ //FIXME drop this function and overloads without translators
+ TTranslators MakeAllTranslators();
+
NYql::TAstParseResult SqlToYql(const TString& query, const TTranslationSettings& settings,
NYql::TWarningRules* warningRules = nullptr, NYql::TStmtParseInfo* stmtParseInfo = nullptr,
TTranslationSettings* effectiveSettings = nullptr);
+ NYql::TAstParseResult SqlToYql(const TTranslators& translators, const TString& query, const TTranslationSettings& settings,
+ NYql::TWarningRules* warningRules = nullptr, NYql::TStmtParseInfo* stmtParseInfo = nullptr,
+ TTranslationSettings* effectiveSettings = nullptr);
+
google::protobuf::Message* SqlAST(const TString& query, const TString& queryName, NYql::TIssues& issues, size_t maxErrors,
const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr);
+ google::protobuf::Message* SqlAST(const TTranslators& translators, const TString& query, const TString& queryName, NYql::TIssues& issues, size_t maxErrors,
+ const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr);
+
ILexer::TPtr SqlLexer(const TString& query, NYql::TIssues& issues, const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr);
+ ILexer::TPtr SqlLexer(const TTranslators& translators, const TString& query, NYql::TIssues& issues, const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr);
NYql::TAstParseResult SqlASTToYql(const TString& query, const google::protobuf::Message& protoAst, const TSQLHints& hints, const TTranslationSettings& settings);
+ NYql::TAstParseResult SqlASTToYql(const TTranslators& translators, const TString& query, const google::protobuf::Message& protoAst, const TSQLHints& hints, const TTranslationSettings& settings);
TVector<NYql::TAstParseResult> SqlToAstStatements(const TString& query, const TTranslationSettings& settings,
NYql::TWarningRules* warningRules = nullptr, ui16* actualSyntaxVersion = nullptr, TVector<NYql::TStmtParseInfo>* stmtParseInfo = nullptr);
-
-} // namespace NSQLTranslationV0
+ TVector<NYql::TAstParseResult> SqlToAstStatements(const TTranslators& translators, const TString& query, const TTranslationSettings& settings,
+ NYql::TWarningRules* warningRules = nullptr, ui16* actualSyntaxVersion = nullptr, TVector<NYql::TStmtParseInfo>* stmtParseInfo = nullptr);
+} // namespace NSQLTranslation