diff options
author | va-kuznecov <va-kuznecov@ydb.tech> | 2023-01-26 17:53:47 +0300 |
---|---|---|
committer | va-kuznecov <va-kuznecov@ydb.tech> | 2023-01-26 17:53:47 +0300 |
commit | daa040e0b99d0f487b6b1ee167a7079ba474f6e4 (patch) | |
tree | 09b4ccd65de743570a0330daa67ceed83f79a904 | |
parent | 6f0e6612354340dcd903ce1a4184ae6d99ca91e8 (diff) | |
download | ydb-daa040e0b99d0f487b6b1ee167a7079ba474f6e4.tar.gz |
Pass EnableLlvm flag thought TPreparedQuery proto
-rw-r--r-- | ydb/core/kqp/common/kqp_prepared_query.h | 8 | ||||
-rw-r--r-- | ydb/core/kqp/compile_service/kqp_compile_actor.cpp | 3 | ||||
-rw-r--r-- | ydb/core/kqp/session_actor/kqp_session_actor.cpp | 3 | ||||
-rw-r--r-- | ydb/core/protos/kqp.proto | 1 |
4 files changed, 14 insertions, 1 deletions
diff --git a/ydb/core/kqp/common/kqp_prepared_query.h b/ydb/core/kqp/common/kqp_prepared_query.h index 9de89807e70..2d1475c58aa 100644 --- a/ydb/core/kqp/common/kqp_prepared_query.h +++ b/ydb/core/kqp/common/kqp_prepared_query.h @@ -141,6 +141,14 @@ public: const NKqpProto::TKqpPhyQuery& GetPhysicalQuery() const { return Proto->GetPhysicalQuery(); } + + std::optional<bool> GetEnableLlvm() const { + if (Proto->HasEnableLlvm()) { + return Proto->GetEnableLlvm(); + } else { + return std::nullopt; + } + } }; diff --git a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp index 02ac972c0ab..6ac44174ba5 100644 --- a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp +++ b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp @@ -270,6 +270,9 @@ private: if (status == Ydb::StatusIds::SUCCESS) { YQL_ENSURE(kqpResult.PreparingQuery); + if (Config->EnableLlvm.Get()) { + kqpResult.PreparingQuery->SetEnableLlvm(*Config->EnableLlvm.Get()); + } KqpCompileResult->PreparedQuery = std::make_shared<const TPreparedQueryHolder>( kqpResult.PreparingQuery.release(), AppData()->FunctionRegistry); diff --git a/ydb/core/kqp/session_actor/kqp_session_actor.cpp b/ydb/core/kqp/session_actor/kqp_session_actor.cpp index e4b03591673..acf7577e347 100644 --- a/ydb/core/kqp/session_actor/kqp_session_actor.cpp +++ b/ydb/core/kqp/session_actor/kqp_session_actor.cpp @@ -995,8 +995,9 @@ public: request.MaxComputeActors = Config->_KqpMaxComputeActors.Get().GetRef(); request.DisableLlvmForUdfStages = Config->DisableLlvmForUdfStages(); - request.LlvmEnabled = IsSqlQuery(queryState->GetType()) && Config->GetEnableLlvm() != EOptionalFlag::Disabled; YQL_ENSURE(queryState); + bool enableLlvm = queryState->PreparedQuery->GetEnableLlvm().value_or(true); + request.LlvmEnabled = enableLlvm && IsSqlQuery(queryState->GetType()); request.Snapshot = queryState->TxCtx->GetSnapshot(); return request; diff --git a/ydb/core/protos/kqp.proto b/ydb/core/protos/kqp.proto index 3d7b438be8c..ba19624a1a7 100644 --- a/ydb/core/protos/kqp.proto +++ b/ydb/core/protos/kqp.proto @@ -223,6 +223,7 @@ message TPreparedQuery { repeated TParameterDescription Parameters = 4; optional string Text = 5; optional NKqpProto.TKqpPhyQuery PhysicalQuery = 6; + optional bool EnableLlvm = 7; }; message TQueryResponse { |