<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/core/common_opt, 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-07-15T12:13:42Z</updated>
<entry>
<title>YQL-21408: Replace MakeLangVersion with features.json</title>
<updated>2026-07-15T12:13:42Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-07-15T11:36:59Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a170d4d258e8148d390d4ea246d29532989d9a76'/>
<id>urn:sha1:a170d4d258e8148d390d4ea246d29532989d9a76</id>
<content type='text'>
#### Replace MakeLangVersion with features.json-based feature system ✎

- Introduces a new feature system based on `features.json` to manage language version dependencies instead of hardcoded `MakeLangVersion` calls
- Replaces direct language version checks with references to named features defined in JSON configuration
- Adds validation and initialization logic for features to ensure version consistency
- Updates all existing language version checks to use the new feature-based approach
- Centralizes feature version definitions in a single JSON file for better maintainability and clarity

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
commit_hash:fe9823c0442060337a30186fd957ae294f1aa1c2
</content>
</entry>
<entry>
<title>YQL-20804: Fix Decimal type conversion</title>
<updated>2026-07-15T11:10:17Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-07-15T10:28:32Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c8d98f95fc8e8877300045ca3f6b639e02833509'/>
<id>urn:sha1:c8d98f95fc8e8877300045ca3f6b639e02833509</id>
<content type='text'>
#### `YQL-20804`: Fix Decimal type conversion ✎

- Enhanced type annotation system to properly handle Decimal type conversions by introducing a new `EDecimalConversionMode` configuration option that allows controlling how common types are computed for Decimal values
- Modified core type annotation functions to accept and utilize a `TTypeAnnotationContext` parameter, ensuring consistent type resolution across join operations and type conversions
- Updated join-related functions and peephole optimizations to pass type context information, fixing issues with Decimal type compatibility during join key processing
- Added comprehensive unit tests to verify Decimal type conversion behavior and ensure proper casting between different Decimal precisions and scales
- Extended type annotation infrastructure to support both strict and lenient Decimal conversion modes, improving error handling and type inference for edge cases

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
commit_hash:f4ec01ad79cb2f3219b529118380747828075e6b
</content>
</entry>
<entry>
<title>YQL-21242: Support Linear types in If branches</title>
<updated>2026-07-13T11:46:11Z</updated>
<author>
<name>eakozyrev</name>
<email>eakozyrev@yandex-team.com</email>
</author>
<published>2026-07-13T11:16:51Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=8865db458215f8589a2dce50ecf8abb083d2c095'/>
<id>urn:sha1:8865db458215f8589a2dce50ecf8abb083d2c095</id>
<content type='text'>
&lt;section id="quibbler-autodescription"&gt;

#### Поддержка линейных типов в ветках оператора If 📝

- 🔄 Обновлена логика проверки использования линейных значений в ветках оператора `If`, теперь учитывается возможность использования значений в разных ветках и их совместимость по путям выполнения.
- 🛠 Добавлена проверка покрытия всех веток для линейных значений, чтобы избежать ситуаций, когда значение не используется на всех возможных путях выполнения.
- 🧠 Улучшена система отслеживания использования линейных значений, включая обработку вложенных условий и корректную проверку на повторное использование в одной ветке.
- ✅ Внесены изменения в оптимизатор, позволяющие корректно обрабатывать идентичные ветки в операторе `If`, улучшая производительность и корректность работы.
- 🧪 Добавлены новые тесты и обновлены существующие для проверки корректности работы с линейными типами в ветках `If` и `IfStrict`.

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
&lt;/section&gt;

Extended TUsageVisitor to track branch execution context.
commit_hash:3ec5339a9d4be05580088060917fc7c2996432b9
</content>
</entry>
<entry>
<title>Push Any in EquiJoin tree</title>
<updated>2026-07-06T16:08:27Z</updated>
<author>
<name>mpereskokova</name>
<email>mpereskokova@yandex-team.com</email>
</author>
<published>2026-07-06T15:23:22Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4d87973984a719c41b6e7a846d93fc8052208495'/>
<id>urn:sha1:4d87973984a719c41b6e7a846d93fc8052208495</id>
<content type='text'>
#### Push Any in EquiJoin tree ✎

- Introduces logic to push "Any" hints through EquiJoin tree structures to optimize join operations
- Adds support for all join types (Inner, Left, Right, Full, Semi, etc.) when pushing Any hints
- Moves PruneKeys functionality to the leaves of EquiJoin tree and enhances its behavior
- Implements new optimization passes that improve pruning and hint propagation in join operations
- Updates test suite with comprehensive test cases covering various join types and key shapes
- Refactors existing code by moving EquiJoin-related optimizations into a dedicated flow step

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
commit_hash:fda17ab32277b4da545c8df1393eaeb8a7e5c229
</content>
</entry>
<entry>
<title>YQL-19699: Keep World for AND/OR Absorption</title>
<updated>2026-07-03T14:03:53Z</updated>
<author>
<name>maxkovalev</name>
<email>maxkovalev@yandex-team.com</email>
</author>
<published>2026-07-03T13:31:13Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5c10539b219fbb0925be48c79d47e3c33d2eda95'/>
<id>urn:sha1:5c10539b219fbb0925be48c79d47e3c33d2eda95</id>
<content type='text'>
#### `YQL-19699`: Keep World for AND/OR Absorption ✎

- Introduces logic to preserve world information during AND/OR absorption optimizations to prevent incorrect side effect handling
- Adds validation to ensure side effects are properly considered when determining if expressions can be safely absorbed
- Updates optimization passes to maintain world context in cases where logical absorption would otherwise alter execution semantics
- Includes comprehensive test coverage for various side effect scenarios in logical absorption cases
- Ensures that optimizations respect the presence of side effects in expressions to maintain correct evaluation order and behavior

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
commit_hash:5802b1e45ce9c14cafddb9ba5e0356406a6d8fe3
</content>
</entry>
<entry>
<title>YQL-20095: Tune bugprone-argument-comment</title>
<updated>2026-06-30T14:16:39Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-06-30T13:05:47Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=8c0cddc7ffb0b7f0c39352957685fb04d7656b6f'/>
<id>urn:sha1:8c0cddc7ffb0b7f0c39352957685fb04d7656b6f</id>
<content type='text'>
https://clang.llvm.org/extra/clang-tidy/checks/bugprone/argument-comment.html
commit_hash:780ff6a63be44998cb2336a05f3dc33e68a676bf
</content>
</entry>
<entry>
<title>YQL-20095: Enable performance-move-const-arg</title>
<updated>2026-06-24T10:13:06Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-06-24T08:56:00Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d0475a0ea7778f4cd82d00d4af324c446183dc61'/>
<id>urn:sha1:d0475a0ea7778f4cd82d00d4af324c446183dc61</id>
<content type='text'>
https://clang.llvm.org/extra/clang-tidy/checks/performance/move-const-arg.html

This check useful, as it shows, when a `std::move` is useless, so
to expectations of a programmer are not aligned with reality. The
most useful profit is to see `const T&amp;` arguments, that are
potentially can be replaced with `T`.

Also disabled `CheckTriviallyCopyableMove`,
see https://nda.ya.ru/t/Emvgx5Z67fpZY5 why.
commit_hash:c80c264a9774721aabbac85b350ccdbb8b9a39a2
</content>
</entry>
<entry>
<title>YQL-20631: Support WITH CTE columns and fix UNION column order for YqlSelect</title>
<updated>2026-06-23T08:17:53Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-06-23T07:46:27Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=ed17a0497e70b70d2d40fe72e8dd8cbe170b77f4'/>
<id>urn:sha1:ed17a0497e70b70d2d40fe72e8dd8cbe170b77f4</id>
<content type='text'>
Implemented a column names specification for a WITH CTE. It requires a
column order derivation. It was not working on `YqlSelect` until PR
https://nda.ya.ru/t/qOC3TNqn7gAcy6 was merged. Also there was a bug
with `UNION` column order inference, which is essential for RECURSIVE
queries. There was compatibility problems with `PgSelect` `UNION`
positional column order semantics, so it was tweaked in `YqlSelect`
mode.
commit_hash:c96192270ca6d51eaa0cb39cf59b65c3951ce3fe
</content>
</entry>
<entry>
<title>Fix fusing two CalcOverWindow with ExtractMembers in-between</title>
<updated>2026-06-12T05:33:30Z</updated>
<author>
<name>aneporada</name>
<email>aneporada@yandex-team.com</email>
</author>
<published>2026-06-12T04:56:35Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5e32de9172b30e962ae8f13a201643d7dacbb37a'/>
<id>urn:sha1:5e32de9172b30e962ae8f13a201643d7dacbb37a</id>
<content type='text'>
commit_hash:ec04ae964cc2923fe432b2bf75d339459452065a
</content>
</entry>
<entry>
<title>Fix PayloadRenameOverWindow in overwrite case</title>
<updated>2026-06-11T11:41:03Z</updated>
<author>
<name>aneporada</name>
<email>aneporada@yandex-team.com</email>
</author>
<published>2026-06-11T10:38:19Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=8356c1b439ac6fd7dc59f701ac87f097dcdfc0d6'/>
<id>urn:sha1:8356c1b439ac6fd7dc59f701ac87f097dcdfc0d6</id>
<content type='text'>
commit_hash:867eb4209058a877aa60f86931daddf1e25ac600
</content>
</entry>
</feed>
