<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/minikql/runtime_settings/runtime_settings_serialization.cpp, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-05-22T15:03:08Z</updated>
<entry>
<title>YQL-19813: Send runtime settings stats</title>
<updated>2026-05-22T15:03:08Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-05-22T08:23:00Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2791a158d7d180295ac2bdc9943867e11aad87c7'/>
<id>urn:sha1:2791a158d7d180295ac2bdc9943867e11aad87c7</id>
<content type='text'>
commit_hash:e8ea8f3c4365ed8b87ced31aa1fa34ca0686758c
</content>
</entry>
<entry>
<title>YQL-19813: Save and load qplayer</title>
<updated>2026-05-20T08:36:16Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-05-20T08:09:21Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7610b2d650b671e194c00a54ec5a7950ae81e957'/>
<id>urn:sha1:7610b2d650b671e194c00a54ec5a7950ae81e957</id>
<content type='text'>
**Режим 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
</content>
</entry>
<entry>
<title>YQL-19813: Udf implementation</title>
<updated>2026-05-07T07:55:16Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-05-07T07:35:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=ff08edeb11d805cb2757a063b7adb1b19eaba0d8'/>
<id>urn:sha1:ff08edeb11d805cb2757a063b7adb1b19eaba0d8</id>
<content type='text'>
commit_hash:183e3a952a021c4701c20d6677800f245239d822
</content>
</entry>
<entry>
<title>YQL-19813: Runtime settings</title>
<updated>2026-04-15T11:20:50Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-04-15T10:57:57Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a2a13d79dc6abf3893c3615336da66562d268910'/>
<id>urn:sha1:a2a13d79dc6abf3893c3615336da66562d268910</id>
<content type='text'>
commit_hash:eba49886bcafb9d280526ea3e3af12a9d07844a0
</content>
</entry>
</feed>
