Skip to content

Commit efcb5e6

Browse files
vitstnblinkov
authored andcommitted
Explicit SQL translators in KQP (#14611)
1 parent 73ea386 commit efcb5e6

File tree

6 files changed

+32
-3
lines changed

6 files changed

+32
-3
lines changed

ydb/core/kqp/host/kqp_translate.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
#include <ydb/core/kqp/provider/yql_kikimr_results.h>
44
#include <yql/essentials/sql/sql.h>
5+
#include <yql/essentials/sql/v0/sql.h>
6+
#include <yql/essentials/sql/v1/sql.h>
7+
#include <yql/essentials/parser/pg_wrapper/interface/parser.h>
58
#include <ydb/public/api/protos/ydb_query.pb.h>
69

710

@@ -288,7 +291,14 @@ NYql::TAstParseResult ParseQuery(const TString& queryText, bool isSql, TMaybe<ui
288291
TKqpAutoParamBuilderFactory autoParamBuilderFactory;
289292
settings.AutoParamBuilderFactory = &autoParamBuilderFactory;
290293
NYql::TStmtParseInfo stmtParseInfo;
291-
auto ast = NSQLTranslation::SqlToYql(queryText, settings, nullptr, &stmtParseInfo, effectiveSettings);
294+
295+
NSQLTranslation::TTranslators translators(
296+
NSQLTranslationV0::MakeTranslator(),
297+
NSQLTranslationV1::MakeTranslator(),
298+
NSQLTranslationPG::MakeTranslator()
299+
);
300+
301+
auto ast = NSQLTranslation::SqlToYql(translators, queryText, settings, nullptr, &stmtParseInfo, effectiveSettings);
292302
deprecatedSQL = (ast.ActualSyntaxType == NYql::ESyntaxType::YQLv0);
293303
sqlVersion = ast.ActualSyntaxType == NYql::ESyntaxType::YQLv1 ? 1 : 0;
294304
keepInCache = stmtParseInfo.KeepInCache;

ydb/core/kqp/host/ya.make

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ PEERDIR(
2222
yql/essentials/core/services
2323
yql/essentials/minikql/invoke_builtins
2424
yql/essentials/sql
25+
yql/essentials/sql/v0
26+
yql/essentials/sql/v1
27+
yql/essentials/parser/pg_wrapper/interface
2528
yql/essentials/core
2629
yql/essentials/providers/common/codec
2730
ydb/library/yql/dq/opt

ydb/core/kqp/provider/rewrite_io_utils.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <yql/essentials/providers/common/provider/yql_provider.h>
88
#include <yql/essentials/providers/common/provider/yql_provider_names.h>
99
#include <yql/essentials/sql/sql.h>
10+
#include <yql/essentials/sql/v1/sql.h>
1011
#include <yql/essentials/utils/log/log.h>
1112

1213
namespace NYql {
@@ -26,8 +27,14 @@ TExprNode::TPtr CompileViewQuery(
2627
translationSettings.Mode = NSQLTranslation::ESqlMode::LIMITED_VIEW;
2728
NSQLTranslation::Deserialize(viewData.CapturedContext, translationSettings);
2829

30+
NSQLTranslation::TTranslators translators(
31+
nullptr,
32+
NSQLTranslationV1::MakeTranslator(),
33+
nullptr
34+
);
35+
2936
TAstParseResult queryAst;
30-
queryAst = NSQLTranslation::SqlToYql(viewData.QueryText, translationSettings);
37+
queryAst = NSQLTranslation::SqlToYql(translators, viewData.QueryText, translationSettings);
3138

3239
ctx.IssueManager.AddIssues(queryAst.Issues);
3340
if (!queryAst.IsOk()) {

ydb/core/kqp/provider/ya.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ PEERDIR(
5353
yql/essentials/providers/result/expr_nodes
5454
yql/essentials/providers/result/provider
5555
yql/essentials/sql
56+
yql/essentials/sql/v1
5657
ydb/library/ydb_issue/proto
5758
yql/essentials/public/issue
5859
yql/essentials/utils/log

ydb/core/kqp/ut/view/view_ut.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include <ydb/core/kqp/ut/common/kqp_ut_common.h>
22
#include <yql/essentials/sql/sql.h>
3+
#include <yql/essentials/sql/v1/sql.h>
34
#include <yql/essentials/utils/log/log.h>
45
#include <ydb-cpp-sdk/client/proto/accessor.h>
56

@@ -198,7 +199,13 @@ Y_UNIT_TEST_SUITE(TCreateAndDropViewTest) {
198199
SELECT "foo" / "bar"
199200
)";
200201

201-
const auto parsedAst = NSQLTranslation::SqlToYql(queryInView, {});
202+
NSQLTranslation::TTranslators translators(
203+
nullptr,
204+
NSQLTranslationV1::MakeTranslator(),
205+
nullptr
206+
);
207+
208+
const auto parsedAst = NSQLTranslation::SqlToYql(translators, queryInView, {});
202209
UNIT_ASSERT_C(parsedAst.IsOk(), parsedAst.Issues.ToString());
203210

204211
const TString creationQuery = std::format(R"(

ydb/core/kqp/ut/view/ya.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ SRCS(
99
PEERDIR(
1010
ydb/core/kqp/ut/common
1111
yql/essentials/sql
12+
yql/essentials/sql/v1
1213
yql/essentials/utils/log
1314

1415
ydb/core/testlib/basics/default

0 commit comments

Comments
 (0)