aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgalaxycrab <UgnineSirdis@ydb.tech>2023-05-02 14:54:51 +0300
committergalaxycrab <UgnineSirdis@ydb.tech>2023-05-02 14:54:51 +0300
commit74fc0d19a74a14170ab2a1db5c7934fd067b096f (patch)
tree7ff04f05a13f1f8a23c854a74f2cdf8f407b638a
parentce9eda7da56cc881220ceb40da6725e88687ce42 (diff)
downloadydb-74fc0d19a74a14170ab2a1db5c7934fd067b096f.tar.gz
Allow provider pragmas usage
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_opt_build.cpp14
-rw-r--r--ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp3
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);