diff options
author | galaxycrab <UgnineSirdis@ydb.tech> | 2023-05-02 14:54:51 +0300 |
---|---|---|
committer | galaxycrab <UgnineSirdis@ydb.tech> | 2023-05-02 14:54:51 +0300 |
commit | 74fc0d19a74a14170ab2a1db5c7934fd067b096f (patch) | |
tree | 7ff04f05a13f1f8a23c854a74f2cdf8f407b638a | |
parent | ce9eda7da56cc881220ceb40da6725e88687ce42 (diff) | |
download | ydb-74fc0d19a74a14170ab2a1db5c7934fd067b096f.tar.gz |
Allow provider pragmas usage
-rw-r--r-- | ydb/core/kqp/provider/yql_kikimr_opt_build.cpp | 14 | ||||
-rw-r--r-- | ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp | 3 |
2 files changed, 13 insertions, 4 deletions
diff --git a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp index 387edee26f2..2675c401c6f 100644 --- a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp @@ -326,11 +326,19 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T if (auto* dqIntegration = dataSource->GetDqIntegration(); dqIntegration && dqIntegration->CanRead(TDqSettings::TDefault::DataSizePerJob, TDqSettings::TDefault::MaxTasksPerStage, *node.Ptr(), ctx)) { txRes.Ops.insert(node.Raw()); for (size_t i = 0, childrenSize = node.Raw()->ChildrenSize(); i < childrenSize; ++i) { - TExprNode* child = node.Raw()->Child(i); - if (child && child->IsWorld()) { - return ExploreTx(TExprBase(child), ctx, dataSink, txRes, tablesData, types); + if (TExprNode::TPtr child = node.Raw()->ChildPtr(i)) { + bool isWorldChild = false; + if (child->IsWorld()) { + isWorldChild = true; + } else if (auto* typeAnn = child->GetTypeAnn(); typeAnn && typeAnn->GetKind() == ETypeAnnotationKind::World) { + isWorldChild = true; + } + if (isWorldChild) { + return ExploreTx(TExprBase(child), ctx, dataSink, txRes, tablesData, types); + } } } + return true; } } diff --git a/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp b/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp index edf8e5d2456..f9d04eb772a 100644 --- a/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp +++ b/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp @@ -77,7 +77,8 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) { auto db = kikimr.GetQueryClient(); auto executeScrptsResult = db.ExecuteScript(R"( - SELECT * FROM bindings.test_binding + PRAGMA s3.AtomicUploadCommit = "1"; --Check that pragmas are OK + SELECT * FROM bindings.test_binding; )").ExtractValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(executeScrptsResult.Status().GetStatus(), EStatus::SUCCESS, executeScrptsResult.Status().GetIssues().ToString()); UNIT_ASSERT(executeScrptsResult.Metadata().ExecutionId); |