summaryrefslogtreecommitdiffstats
path: root/yql/essentials/core
diff options
context:
space:
mode:
authoratarasov5 <[email protected]>2026-05-20 11:09:21 +0300
committeratarasov5 <[email protected]>2026-05-20 11:36:16 +0300
commit7610b2d650b671e194c00a54ec5a7950ae81e957 (patch)
tree52e7a96d2c18e42ab9ee44d95b292b653750c563 /yql/essentials/core
parent22fa9f58b3d741847907a1263cb5f0ad30106a18 (diff)
YQL-19813: Save and load qplayer
**Режим capture** (qContext.CanWrite()) 1. Проходим по всем элементам source с индексом idx. 2. Для каждого элемента вызываем filter(item) ровно один раз (фильтр может иметь побочные эффекты — например, запись статистики об активации). 3. Элементы, прошедшие фильтр, добавляются в возвращаемый результат. 4. Сохраняем индексы всех прошедших фильтр элементов в QStorage в формате V2: \{"version": "v2", "indexes": \[0, 2, 5, ...\]\} --- **Режим replay** (qContext.CanRead()) 1. Читаем YSON-запись из QStorage по ключу \{Component="Activation", Label=label\}. 2. Определяем версию формата по наличию ключа "version": **Формат V1** (старый, обратная совместимость) — ключ "version" отсутствует: - Структура: \{"имя\_флага": сериализованный\_proto, ...\} - Десериализуем каждый флаг через ParseFromString, возвращаем список напрямую. - Фильтр не вызывается. Список source игнорируется. **Формат V2 (текущий)** — "version": "v2": - Структура: \{"version": "v2", "indexes": \[0, 2, 5, ...\]\} - Читаем сохранённое множество индексов. - Проходим по source с *индексом* idx: - Элемент без условия активации (!HasActivation()) → всегда включается (такие элементы не зависят от активации). - Элемент с условием активации (HasActivation()) → включается только если его idx есть в сохранённом множестве. - Фильтр не вызывается. commit_hash:306113465bcd614cd3c0cd311ab20542d1f8e254
Diffstat (limited to 'yql/essentials/core')
-rw-r--r--yql/essentials/core/facade/yql_facade.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/yql/essentials/core/facade/yql_facade.cpp b/yql/essentials/core/facade/yql_facade.cpp
index 3ca85ea29ff..e2f6cc5343b 100644
--- a/yql/essentials/core/facade/yql_facade.cpp
+++ b/yql/essentials/core/facade/yql_facade.cpp
@@ -2089,7 +2089,7 @@ TTypeAnnotationContextPtr TProgram::BuildTypeAnnotationContext(const TString& us
typeAnnotationContext->AddRemoteLayersProvider(alias, provider);
}
if (GatewaysConfig_) {
- typeAnnotationContext->RuntimeSettings = CreateRuntimeSettingsFromProto(GatewaysConfig_->GetRuntimeSettings(), username, Credentials_);
+ typeAnnotationContext->RuntimeSettings = CreateRuntimeSettingsFromProto(GatewaysConfig_->GetRuntimeSettings(), username, Credentials_, QContext_);
}
if (UdfIndex_ && UdfIndexPackageSet_) {
// setup default versions at the beginning