summaryrefslogtreecommitdiffstats
path: root/yql/essentials/minikql/runtime_settings
Commit message (Collapse)AuthorAgeFilesLines
* YQL-21207: Hash runtime settingsatarasov511 days6-3/+165
| | | | | | | | | | | | | | #### Hash runtime settings for stable identification ✎ - Introduces a stable hash function for runtime settings to enable consistent identification of configuration states - Implements `SHA-256` based hashing that includes both host settings and UDF settings with deterministic ordering - Ensures hash stability regardless of setting insertion order by using ordered data structures - Adds comprehensive unit tests to verify hash consistency, content sensitivity, and order independence - Enhances configuration serialization to properly count and filter serializable settings - Makes serialization order deterministic by switching from hash map to map for setting storage <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:49aafc63bf011c335d556cd41dd4971473b62f13
* YQL-20875: Enable apache arrow datum light checkatarasov52026-06-044-8/+71
| | | | commit_hash:ca028259d6fbf7b46aa0cc392187b8b153716d62
* YQL-19813: Send runtime settings statsatarasov52026-05-223-11/+19
| | | | commit_hash:e8ea8f3c4365ed8b87ced31aa1fa34ca0686758c
* YQL-19813: Save and load qplayeratarasov52026-05-206-46/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Режим 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
* YQL-19813: Udf implementationatarasov52026-05-073-6/+17
| | | | commit_hash:183e3a952a021c4701c20d6677800f245239d822
* YQL-19813: Purecalc and embeddedatarasov52026-04-291-1/+1
| | | | commit_hash:7db31947013b154fefd5664f2dca2db0330144b9
* YQL-19813: Pass runtime settings to minikql + YT + minirunatarasov52026-04-293-6/+19
| | | | commit_hash:054395f57e37951159c1184eae2e6d4bc81245f8
* YQL-19813: Runtime settingsatarasov52026-04-1511-0/+441
commit_hash:eba49886bcafb9d280526ea3e3af12a9d07844a0