diff --git a/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp b/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp index db41ce829bff..1e8ad735a14f 100644 --- a/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp +++ b/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp @@ -768,6 +768,12 @@ class TDqExecTransformer: public TExecTransformerBase, TCounters return filesRes; } FlushCounter("FreezeUsedFiles"); + + auto& qContext = State->TypeCtx->QContext; + if (qContext.CanWrite() && qContext.CaptureMode() == EQPlayerCaptureMode::Full && !files.empty()) { + YQL_CLOG(DEBUG, ProviderDq) << "DQ full capture has not been taken: file dump is unsupported"; + State->IsFullCaptureReady = false; + } // copy-paste } TScopedAlloc alloc(__LOCATION__, NKikimr::TAlignedPagePoolCounters(), State->FunctionRegistry->SupportsSizedAllocators()); @@ -1347,6 +1353,12 @@ class TDqExecTransformer: public TExecTransformerBase, TCounters return filesRes; } FlushCounter("FreezeUsedFiles"); + + auto& qContext = State->TypeCtx->QContext; + if (qContext.CanWrite() && qContext.CaptureMode() == EQPlayerCaptureMode::Full && !files.empty()) { + YQL_CLOG(DEBUG, ProviderDq) << "DQ full capture has not been taken: file dump is unsupported"; + State->IsFullCaptureReady = false; + } // copy-paste } THashMap secureParams; @@ -1900,6 +1912,12 @@ class TDqExecTransformer: public TExecTransformerBase, TCounters continue; } FlushCounter("FreezeUsedFiles"); + + auto& qContext = State->TypeCtx->QContext; + if (qContext.CanWrite() && qContext.CaptureMode() == EQPlayerCaptureMode::Full && !files.empty()) { + YQL_CLOG(DEBUG, ProviderDq) << "DQ full capture has not been taken: file dump is unsupported"; + State->IsFullCaptureReady = false; + } // copy-paste } auto settings = std::make_shared(*commonSettings); diff --git a/ydb/library/yql/providers/dq/provider/yql_dq_datasink.cpp b/ydb/library/yql/providers/dq/provider/yql_dq_datasink.cpp index 775fcea8e661..c2ffd3c6484a 100644 --- a/ydb/library/yql/providers/dq/provider/yql_dq_datasink.cpp +++ b/ydb/library/yql/providers/dq/provider/yql_dq_datasink.cpp @@ -223,6 +223,10 @@ class TDqDataProviderSink: public TDataProviderBase { } } + bool IsFullCaptureReady() override { + return State->IsFullCaptureReady; + } + const TDqState::TPtr State; TLazyInitHolder LogOptTransformer; diff --git a/ydb/library/yql/providers/dq/provider/yql_dq_state.h b/ydb/library/yql/providers/dq/provider/yql_dq_state.h index ac9b36d12ac6..0aca5830b845 100644 --- a/ydb/library/yql/providers/dq/provider/yql_dq_state.h +++ b/ydb/library/yql/providers/dq/provider/yql_dq_state.h @@ -33,6 +33,7 @@ struct TDqState: public TThrRefBase { const TString VanillaJobMd5; TDqConfiguration::TPtr Settings = MakeIntrusive(); bool ExternalUser; + bool IsFullCaptureReady = true; TMutex Mutex; THashMap Statistics;