<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql, 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-21T18:39:47Z</updated>
<entry>
<title>YQL-21350: Limit SQLv1 parse tree depth</title>
<updated>2026-07-21T18:39:47Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-07-21T18:16:55Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d19bdaaa850c129df93f225259f6cc96178fba61'/>
<id>urn:sha1:d19bdaaa850c129df93f225259f6cc96178fba61</id>
<content type='text'>
Copy of https://nda.ya.ru/t/ceJZ5osd7jHYXe.
commit_hash:07f1b0533bb4ba214af84233eee20c113010fa09
</content>
</entry>
<entry>
<title>YQL-20631: Warn on WITH CTE name mismatch</title>
<updated>2026-07-21T15:12:31Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-07-21T14:19:44Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=e138d74a539fc96f0b48e610e674a91215acdff1'/>
<id>urn:sha1:e138d74a539fc96f0b48e610e674a91215acdff1</id>
<content type='text'>
A warning on WITH CTE column names specification and corresponding select
column order mismatch was introduced. It is not complete, because there can be
autogenerated columns (e.g. `column0`, `column1`) and now there is no way to
get if they are autogenerated or user-specified, so there is a regex heuristic now.

Good implementation requires passing a new  attribute from a translator and a lot of
recanonization.  I can do it, but  propose to make it in a separate PR.

Also there was a problem of repetitive warning emission, because of
"Type Annotation (repeat)". A classical approach with `Warn` suffix is not very
useful in SqlSelect, because its type annotation is so huge and has a lot of `Repeat`s.
So I found a solution in introduction of a new attribute `warnings`, where warning
ids are stored in an atom list, so lookup in this list does the deduplication.
commit_hash:e67198223e224ef80ff2bf48d6d9bb7bbe3f264a
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2026-07-21T10:56:05Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2026-07-21T10:22:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f083c53f4fd38181b41571bf6b92b7d11aff836d'/>
<id>urn:sha1:f083c53f4fd38181b41571bf6b92b7d11aff836d</id>
<content type='text'>
commit_hash:3fb2a704bbe1b994e96732b714bfc635e78b78aa
</content>
</entry>
<entry>
<title>Remove deprecated functions</title>
<updated>2026-07-21T09:20:52Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-07-21T08:03:44Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=01e0ca88ca0f1f9da5917dc0b7989b3ebbcd6229'/>
<id>urn:sha1:01e0ca88ca0f1f9da5917dc0b7989b3ebbcd6229</id>
<content type='text'>
#### Remove deprecated type conversion functions ✎

- Removed deprecated overloaded functions for type conversion and inference that accepted `bool useTypeDiff` parameter
- Updated all related function signatures to use `TTypeAnnotationContext` instead of separate `bool useTypeDiff` flag
- Eliminated redundant function variants that were kept for backward compatibility
- Simplified the API by removing obsolete parameters and maintaining only the modern approach with type context
- Improved code clarity and reduced maintenance overhead by removing deprecated code paths

&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:a724ae6debe4207ec05a2907b85f9c2bf4f07394
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2026-07-20T20:42:09Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2026-07-20T19:57:13Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2e0f70a7c506ca9389b470232df042fd2628faf2'/>
<id>urn:sha1:2e0f70a7c506ca9389b470232df042fd2628faf2</id>
<content type='text'>
commit_hash:469502ac214838a72fed41d91ea10b4f420379a4
</content>
</entry>
<entry>
<title>YQL-21081: Limit strip IO via stdout pipe</title>
<updated>2026-07-17T19:25:51Z</updated>
<author>
<name>eakozyrev</name>
<email>eakozyrev@yandex-team.com</email>
</author>
<published>2026-07-17T17:39:34Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=e588792d6a8f91b2a173d1be87a74aab78b52b56'/>
<id>urn:sha1:e588792d6a8f91b2a173d1be87a74aab78b52b56</id>
<content type='text'>
**Description:**

Use stdout pipe with optional pv bandwidth limit for strip operation instead of direct disk write.

### Важно:

`&gt; strip /usr/bin/ls -o /dev/stdout | pv &gt; dst `

`strip: /dev/stdout[.interp]: Illegal seek`

\| не умеет работать с pipe!

"Оператор конвейра (`|`) создает **канал (pipe)**, который является последовательным потоком данных и **не поддерживает** операцию произвольного поиска (`lseek`)"

В ПР делаю запись в `dev/shm/` - это запись в оперативную память, должно быть гораздо быстрее чем на диск.

\+ Я вставил исключение, если утилита не найдена.
commit_hash:3bad6eebafe7a1af56a7909d1954c76d2d9c98b5
</content>
</entry>
<entry>
<title>YQL-21372, fixed switch data multiplication, fixed hanging of DQ stages with multi output, refactor switch state handling</title>
<updated>2026-07-17T16:06:51Z</updated>
<author>
<name>grigoriypisar</name>
<email>grigoriypisar@yandex-team.com</email>
</author>
<published>2026-07-17T09:26:32Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5de8ba50bea647fe2de7d10cab7ee86814281b89'/>
<id>urn:sha1:5de8ba50bea647fe2de7d10cab7ee86814281b89</id>
<content type='text'>
Adjusted LLVM code for switch
Refactored switch state, and fixed:

1. Stop processing once the active handler is finished.
   Previously, `Switch` could continue reading from input and forwarding `Yield` even after all handlers had already completed, for example with `Take &lt;stream&gt; &lt;limit&gt;`.
2. Do not finish prematurely when input is finished.
   If input returned `Finish`, the handler could still produce final `Yield`/data before completing. `Switch` now waits for the handler to fully drain instead of dropping the final output.
3. Preserve buffered input when handler yields early.
   If a handler returned `Yield` before consuming the whole input buffer, the remaining buffered data could be skipped after switching. This is now handled correctly.
4. Handle repeated `Yield` from input correctly.
   Previously, after sending `Yield`, the read index could be reset immediately in the handler. If the handler did not produce its own `Yield`, the same input could be reread, producing incorrect results. This case is now covered and fixed.

Also fixed previously reverted hanging when switch produce extra yields.

Refactoring request: &lt;https://nda.ya.ru/t/8F3L9v3_7isKfN&gt;
commit_hash:ef7fd73dbdee60d33c384b6d6b505ad7bee20458
</content>
</entry>
<entry>
<title>YQL-21315: Block variant item implementation</title>
<updated>2026-07-17T15:57:11Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-07-17T08:28:08Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0e52f04caa16030b7e49090548b32fb50be2ef81'/>
<id>urn:sha1:0e52f04caa16030b7e49090548b32fb50be2ef81</id>
<content type='text'>
BlockVariantItem implementation
commit_hash:f35a597dee3dc67ebc5be599ed9d379d7ad57802
</content>
</entry>
<entry>
<title>pass streaming constraints inside switch</title>
<updated>2026-07-17T10:12:17Z</updated>
<author>
<name>grigoriypisar</name>
<email>grigoriypisar@yandex-team.com</email>
</author>
<published>2026-07-16T15:41:26Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=331c0f75148f049b4799aaa7eb734fa25d899421'/>
<id>urn:sha1:331c0f75148f049b4799aaa7eb734fa25d899421</id>
<content type='text'>
Added streaming constraint passing for switch:

* If input has streaming constraint -- all child lambdas also get streaming constraint on input (because joined variant stream may not finish)
commit_hash:0da119f104179a5c93d9a6752876d3d1e3a63637
</content>
</entry>
<entry>
<title>Add GENERATED ALWAYS AS syntax</title>
<updated>2026-07-17T10:08:59Z</updated>
<author>
<name>ditimizhev</name>
<email>ditimizhev@yandex-team.com</email>
</author>
<published>2026-07-16T15:33:51Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9081af8b0632405093c7c891e2220cfacdbc4843'/>
<id>urn:sha1:9081af8b0632405093c7c891e2220cfacdbc4843</id>
<content type='text'>
#### Add GENERATED ALWAYS AS syntax support ✎

- Introduces support for GENERATED ALWAYS AS column syntax in CREATE TABLE and ALTER TABLE statements, including both STORED and VIRTUAL variants
- Adds parsing and semantic validation for generated columns, ensuring they are only supported for YDB provider and table types
- Extends SQL grammar with new keywords and rules to handle generated column definitions and expressions
- Implements proper highlighting and formatting for GENERATED ALWAYS AS syntax across different language parsers
- Includes comprehensive test coverage for various generated column scenarios, including expressions, nested paths, and error conditions
- Adds validation to prevent usage in external tables, tablestores, and non-YDB providers

&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:cb2260d56b17f0d8e9044dcebc59a25147e85bd6
</content>
</entry>
</feed>
