summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorva-kuznecov <[email protected]>2022-10-31 09:25:29 +0300
committerva-kuznecov <[email protected]>2022-10-31 09:25:29 +0300
commite40be28be204ba6395f42017b0972bb0fd5bffaa (patch)
tree9425c1de397864a78ee431d34227045b64a9b0d3
parent88b425c10423300e71eb3edd18094b4973478571 (diff)
Add DocumentApiRestricted into SessionActor
-rw-r--r--ydb/core/kqp/kqp_session_actor.cpp6
-rw-r--r--ydb/core/kqp/kqp_worker_actor.cpp6
-rw-r--r--ydb/core/kqp/kqp_worker_common.h4
3 files changed, 10 insertions, 6 deletions
diff --git a/ydb/core/kqp/kqp_session_actor.cpp b/ydb/core/kqp/kqp_session_actor.cpp
index 3e8c7122791..fb5cd91db15 100644
--- a/ydb/core/kqp/kqp_session_actor.cpp
+++ b/ydb/core/kqp/kqp_session_actor.cpp
@@ -84,6 +84,7 @@ struct TKqpQueryState {
ui64 CurrentTx = 0;
TString TraceId;
+ bool IsDocumentApiRestricted = false;
TInstant StartTime;
NYql::TKikimrQueryDeadlines QueryDeadlines;
@@ -332,6 +333,7 @@ public:
QueryState->Sender = ev->Sender;
QueryState->ProxyRequestId = proxyRequestId;
QueryState->TraceId = requestInfo.GetTraceId();
+ QueryState->IsDocumentApiRestricted = IsDocumentApiRestricted(event.GetRequestType());
QueryState->StartTime = TInstant::Now();
QueryState->UserToken = event.GetUserToken();
QueryState->QueryDeadlines = GetQueryDeadlines(queryRequest);
@@ -482,6 +484,10 @@ public:
YQL_ENSURE(false);
}
+ if (query) {
+ query->Settings.DocumentApiRestricted = QueryState->IsDocumentApiRestricted;
+ }
+
auto compileDeadline = QueryState->QueryDeadlines.TimeoutAt;
if (QueryState->QueryDeadlines.CancelAt) {
compileDeadline = Min(compileDeadline, QueryState->QueryDeadlines.CancelAt);
diff --git a/ydb/core/kqp/kqp_worker_actor.cpp b/ydb/core/kqp/kqp_worker_actor.cpp
index 2de558f1115..a3fc2966b59 100644
--- a/ydb/core/kqp/kqp_worker_actor.cpp
+++ b/ydb/core/kqp/kqp_worker_actor.cpp
@@ -41,8 +41,6 @@ void FailForcedNewEngineExecutionForTests(bool fail) {
namespace {
-constexpr std::string_view DocumentApiRequestType = "_document_api_request"sv;
-
using TQueryResult = IKqpHost::TQueryResult;
struct TKqpQueryState {
@@ -2041,10 +2039,6 @@ private:
return Nothing();
}
- static bool IsDocumentApiRestricted(const TString& requestType) {
- return requestType != DocumentApiRequestType;
- }
-
static TKikimrQueryLimits GetQueryLimits(const TKqpWorkerSettings& settings) {
const auto& queryLimitsProto = settings.Service.GetQueryLimits();
const auto& phaseLimitsProto = queryLimitsProto.GetPhaseLimits();
diff --git a/ydb/core/kqp/kqp_worker_common.h b/ydb/core/kqp/kqp_worker_common.h
index 871c8be02a0..c0878d52f92 100644
--- a/ydb/core/kqp/kqp_worker_common.h
+++ b/ydb/core/kqp/kqp_worker_common.h
@@ -127,4 +127,8 @@ void SlowLogQuery(const TActorContext &ctx, const NYql::TKikimrConfiguration* co
NYql::EKikimrStatsMode GetStatsModeInt(const NKikimrKqp::TQueryRequest& queryRequest);
NYql::TKikimrQueryLimits GetQueryLimits(const TKqpWorkerSettings& settings);
+inline bool IsDocumentApiRestricted(const TString& requestType) {
+ return requestType != "_document_api_request"sv;
+}
+
}