aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwhcrc <whcrc@yandex-team.ru>2022-06-30 18:39:32 +0300
committerwhcrc <whcrc@yandex-team.ru>2022-06-30 18:39:32 +0300
commit81fd9ea2d075516cb0725f85118dcca474cd42e3 (patch)
tree889f846a8d5e424717781fb8c8bd597c2262d9c3
parentccf31faee2bc0c051b65ed5899060bd597b22c70 (diff)
downloadydb-81fd9ea2d075516cb0725f85118dcca474cd42e3.tar.gz
YQL-14803: hidden publish
ref:aa08bfa6ab3e8901aeadca53b92b01b5af6ea05f
-rw-r--r--ydb/library/yql/core/CMakeLists.txt5
-rw-r--r--ydb/library/yql/core/facade/yql_facade.cpp18
-rw-r--r--ydb/library/yql/core/facade/yql_facade.h6
-rw-r--r--ydb/library/yql/core/yql_type_annotation.h9
4 files changed, 25 insertions, 13 deletions
diff --git a/ydb/library/yql/core/CMakeLists.txt b/ydb/library/yql/core/CMakeLists.txt
index ff329911be..1938149266 100644
--- a/ydb/library/yql/core/CMakeLists.txt
+++ b/ydb/library/yql/core/CMakeLists.txt
@@ -76,3 +76,8 @@ generate_enum_serilization(library-yql-core
INCLUDE_HEADERS
ydb/library/yql/core/yql_atom_enums.h
)
+generate_enum_serilization(library-yql-core
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.h
+ INCLUDE_HEADERS
+ ydb/library/yql/core/yql_type_annotation.h
+)
diff --git a/ydb/library/yql/core/facade/yql_facade.cpp b/ydb/library/yql/core/facade/yql_facade.cpp
index 6df51169ca..5157b213bb 100644
--- a/ydb/library/yql/core/facade/yql_facade.cpp
+++ b/ydb/library/yql/core/facade/yql_facade.cpp
@@ -184,9 +184,9 @@ TProgramPtr TProgramFactory::Create(
const TString& filename,
const TString& sourceCode,
const TString& sessionId,
- bool hidden)
+ EHiddenMode hiddenMode)
{
- auto randomProvider = UseRepeatableRandomAndTimeProviders_ && !UseUnrepeatableRandom && !hidden ?
+ auto randomProvider = UseRepeatableRandomAndTimeProviders_ && !UseUnrepeatableRandom && hiddenMode == EHiddenMode::Disable ?
CreateDeterministicRandomProvider(1) : CreateDefaultRandomProvider();
auto timeProvider = UseRepeatableRandomAndTimeProviders_ ?
CreateDeterministicTimeProvider(10000000) : CreateDefaultTimeProvider();
@@ -199,7 +199,7 @@ TProgramPtr TProgramFactory::Create(
// make UserDataTable_ copy here
return new TProgram(FunctionRegistry_, randomProvider, timeProvider, NextUniqueId_, DataProvidersInit_,
UserDataTable_, CredentialTables_, UserCredentials_, moduleResolver, udfResolver, udfIndex, udfIndexPackageSet, FileStorage_,
- GatewaysConfig_, filename, sourceCode, sessionId, Runner_, EnableRangeComputeFor_, hidden);
+ GatewaysConfig_, filename, sourceCode, sessionId, Runner_, EnableRangeComputeFor_, hiddenMode);
}
///////////////////////////////////////////////////////////////////////////////
@@ -225,7 +225,7 @@ TProgram::TProgram(
const TString& sessionId,
const TString& runner,
bool enableRangeComputeFor,
- bool hidden
+ EHiddenMode hiddenMode
)
: FunctionRegistry_(functionRegistry)
, RandomProvider_(randomProvider)
@@ -251,7 +251,7 @@ TProgram::TProgram(
, ResultFormat_(NYson::EYsonFormat::Binary)
, OutputFormat_(NYson::EYsonFormat::Pretty)
, EnableRangeComputeFor_(enableRangeComputeFor)
- , Hidden_(hidden)
+ , HiddenMode_(hiddenMode)
{
if (SessionId_.empty()) {
SessionId_ = CreateGuidAsString();
@@ -767,7 +767,7 @@ TProgram::TFutureStatus TProgram::RunAsync(
if (!ProvideAnnotationContext(username)->Initialize(*ExprCtx_) || !CollectUsedClusters()) {
return NThreading::MakeFuture<TStatus>(IGraphTransformer::TStatus::Error);
}
- TypeCtx_->IsReadOnly = Hidden_;
+ TypeCtx_->IsReadOnly = (HiddenMode_ != EHiddenMode::Disable);
for (const auto& dp : DataProviders_) {
if (!dp.RemoteClusterProvider || !dp.RemoteRun) {
@@ -841,7 +841,7 @@ TProgram::TFutureStatus TProgram::RunAsyncWithConfig(
if (!ProvideAnnotationContext(username)->Initialize(*ExprCtx_) || !CollectUsedClusters()) {
return NThreading::MakeFuture<TStatus>(IGraphTransformer::TStatus::Error);
}
- TypeCtx_->IsReadOnly = Hidden_;
+ TypeCtx_->IsReadOnly = (HiddenMode_ != EHiddenMode::Disable);
for (const auto& dp : DataProviders_) {
if (!dp.RemoteClusterProvider || !dp.RemoteRun) {
@@ -1284,7 +1284,7 @@ TTypeAnnotationContextPtr TProgram::BuildTypeAnnotationContext(const TString& us
if (DiagnosticFormat_) {
typeAnnotationContext->Diagnostics = true;
}
- typeAnnotationContext->Hidden = Hidden_;
+ typeAnnotationContext->HiddenMode = HiddenMode_;
if (UdfIndex_ && UdfIndexPackageSet_) {
// setup default versions at the beginning
@@ -1307,7 +1307,7 @@ TTypeAnnotationContextPtr TProgram::BuildTypeAnnotationContext(const TString& us
ProgressWriter_,
OperationOptions_
);
- if (Hidden_ && !dp.SupportsHidden) {
+ if (HiddenMode_ != EHiddenMode::Disable && !dp.SupportsHidden) {
continue;
}
diff --git a/ydb/library/yql/core/facade/yql_facade.h b/ydb/library/yql/core/facade/yql_facade.h
index 1fd21181b7..82f8f1c22d 100644
--- a/ydb/library/yql/core/facade/yql_facade.h
+++ b/ydb/library/yql/core/facade/yql_facade.h
@@ -62,7 +62,7 @@ public:
const TString& filename,
const TString& sourceCode,
const TString& sessionId = TString(),
- bool hidden = false);
+ EHiddenMode hiddenMode = EHiddenMode::Disable);
void UnrepeatableRandom();
private:
@@ -319,7 +319,7 @@ private:
const TString& sessionId,
const TString& runner,
bool enableRangeComputeFor,
- bool hidden);
+ EHiddenMode hiddenMode);
TTypeAnnotationContextPtr BuildTypeAnnotationContext(const TString& username);
TTypeAnnotationContextPtr GetAnnotationContext() const;
@@ -394,7 +394,7 @@ private:
const bool EnableRangeComputeFor_;
i64 FallbackCounter = 0;
std::function<void()> BeforeFallback = [](){};
- bool Hidden_ = false;
+ const EHiddenMode HiddenMode_ = EHiddenMode::Disable;
};
} // namspace NYql
diff --git a/ydb/library/yql/core/yql_type_annotation.h b/ydb/library/yql/core/yql_type_annotation.h
index 003b6bd125..6e7c10cb62 100644
--- a/ydb/library/yql/core/yql_type_annotation.h
+++ b/ydb/library/yql/core/yql_type_annotation.h
@@ -172,6 +172,13 @@ private:
THashMap<ui64, TColumnOrder> Storage;
};
+enum class EHiddenMode {
+ Disable /* "disable" */,
+ Force /* "force" */,
+ Debug /* "debug" */,
+ Auto /* "auto" */
+};
+
struct TTypeAnnotationContext: public TThrRefBase {
TIntrusivePtr<ITimeProvider> TimeProvider;
TIntrusivePtr<IRandomProvider> RandomProvider;
@@ -235,7 +242,7 @@ struct TTypeAnnotationContext: public TThrRefBase {
std::tuple<std::optional<ui64>, std::optional<double>, std::optional<TGUID>> CachedRandom;
std::optional<bool> InitializeResult;
- bool Hidden = false;
+ EHiddenMode HiddenMode = EHiddenMode::Disable;
template <typename T>
T GetRandom() const noexcept;