<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/minikql, 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-17T16:06:51Z</updated>
<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>YQL-21404 implemented syscache, table, func call</title>
<updated>2026-07-14T14:57:28Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2026-07-14T14:17:32Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4f6a4597ecf74d3d25e8df990b45ee81026c73b0'/>
<id>urn:sha1:4f6a4597ecf74d3d25e8df990b45ee81026c73b0</id>
<content type='text'>
#### `YQL-21404`: Implemented syscache, table, and function call support for collations ✎

- Added support for PostgreSQL collation handling in function calls, enabling explicit collation specification via named arguments
- Implemented syscache and table catalog support for pg_collation system table to provide complete catalog information
- Enhanced type annotation and runtime compilation to properly handle collation OIDs and validate collation names
- Introduced ICU locale collation support with stable OID assignment based on locale position in generated catalog
- Added comprehensive test coverage for collation functionality including standard and ICU locales, collation validation, and error cases
- Extended SQL parsing to support COLLATE clauses and proper collation propagation in function calls

&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:e9a32cc848bef7b68b4f57f71a1f5f69e0de9653
</content>
</entry>
<entry>
<title>YQL-21315: Implement block variant comp node</title>
<updated>2026-07-14T09:17:28Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-07-14T08:21:03Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=290e3f02532a30eabcf4a4c6aaa6fa36cb48a887'/>
<id>urn:sha1:290e3f02532a30eabcf4a4c6aaa6fa36cb48a887</id>
<content type='text'>
#### Implement Block Variant Computational Node ✎

- Introduces a new computational node for handling variant types in block operations, supporting both tuple and struct variants
- Adds type annotation and runtime support for the new variant node with proper type checking and validation
- Implements block-level variant operations that can select specific alternatives from variant types based on index or member name
- Includes comprehensive unit tests and integration tests covering both tuple and struct variant scenarios
- Updates runtime version to 81 and integrates the new node into the compilation and execution pipeline
- Provides SQL syntax support for variant operations through the `Variant` function with appropriate type handling

&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:a07c1a365815a271cdd34958369156fd542fd5cc
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2026-07-13T17:30:26Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2026-07-13T17:00:12Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a5a5d1767a8062e98b429e214589723ab08ccd83'/>
<id>urn:sha1:a5a5d1767a8062e98b429e214589723ab08ccd83</id>
<content type='text'>
commit_hash:c6dfa214bb0ac2d6c28c49e031f19563bcb7039e
</content>
</entry>
<entry>
<title>Support Uuid and DyNumber in minikql blocks and Arrow</title>
<updated>2026-07-10T17:40:36Z</updated>
<author>
<name>xyligansereja</name>
<email>xyligansereja@yandex-team.com</email>
</author>
<published>2026-07-10T17:02:07Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=fb8afa3946bca4bc2e84bc59cba90c58774d84d4'/>
<id>urn:sha1:fb8afa3946bca4bc2e84bc59cba90c58774d84d4</id>
<content type='text'>
Изменения в рамках этого тикета &lt;https://github.com/ydb-platform/ydb/issues/44190&gt;
#### Support Uuid and DyNumber in minikql blocks and Arrow ✎

- Added support for Uuid and DyNumber data types within MiniKQL blocks and Arrow computations, enabling their use in block-based operations and serialization
- Implemented proper conversion, serialization, and deserialization logic for both data types in the Arrow format
- Extended block item handling to support Uuid and DyNumber, including comparator and hasher implementations
- Added comprehensive unit tests covering roundtrip operations, serialization, comparison, and conversion for both data types
- Integrated Uuid and DyNumber support into built-in functions like Min/Max and their aggregate variants
- Updated type system and block builder components to recognize and handle the new data types correctly
- Added necessary includes and utility functions to work with Uuid and DyNumber in MiniKQL contexts

&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:d1ab82c060cfa90b7cd13a1cb3efbcb9615e6291
</content>
</entry>
<entry>
<title>YQL-21101: Make ToFlow dependent args required</title>
<updated>2026-07-10T12:33:54Z</updated>
<author>
<name>imunkin</name>
<email>imunkin@yandex-team.com</email>
</author>
<published>2026-07-10T11:56:24Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=72fa1327e05e34ae0bb9c36d12b4be0ed0d04bab'/>
<id>urn:sha1:72fa1327e05e34ae0bb9c36d12b4be0ed0d04bab</id>
<content type='text'>
commit_hash:bc73ed520d5d4ef210b03b983720e6e8a6996db5
</content>
</entry>
<entry>
<title>fix asan fault by use-after-poison in mkql arrow alloc</title>
<updated>2026-07-10T05:46:14Z</updated>
<author>
<name>grigoriypisar</name>
<email>grigoriypisar@yandex-team.com</email>
</author>
<published>2026-07-10T05:27:46Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=eed42c709f948b0104b000a448a39d88bf4c422c'/>
<id>urn:sha1:eed42c709f948b0104b000a448a39d88bf4c422c</id>
<content type='text'>
#### Fix use-after-poison issue in MKQL arrow allocator ✎

- Addressed a use-after-poison memory error that occurred when using the default arrow allocator for memory management in MKQL
- Added a sanitizer call to make memory region accessible before freeing it, preventing undefined behavior in memory sanitization tools
- Introduced a new unit test to verify proper allocation and deallocation when the default arrow allocator is active
- Ensured memory safety by properly handling memory access patterns during deallocation in sanitizer environments

&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:080ee439f355ca7178f78b02b52302928e60e745
</content>
</entry>
<entry>
<title>Fix use-after-dtor in TDirectArrayHolderInplace</title>
<updated>2026-07-09T17:27:01Z</updated>
<author>
<name>makxenov</name>
<email>makxenov@yandex-team.com</email>
</author>
<published>2026-07-09T14:55:51Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2c78794c9bde8059f5ee816e7f0e537f05df9360'/>
<id>urn:sha1:2c78794c9bde8059f5ee816e7f0e537f05df9360</id>
<content type='text'>
#### Fix use-after-dtor in TDirectArrayHolderInplace ✎

- Replaced the traditional `operator delete` with a destroying delete operator to ensure proper destruction order
- The new implementation explicitly calls the destructor before freeing memory, preventing use-after-destructor issues
commit_hash:9669691da2c478864eab809124405fc6cc31e57d
</content>
</entry>
<entry>
<title>YQL-21315: Implement variant expensive validation</title>
<updated>2026-07-09T15:45:58Z</updated>
<author>
<name>atarasov5</name>
<email>atarasov5@yandex-team.com</email>
</author>
<published>2026-07-09T14:54:58Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=72f4ac776276d5832476130314e4fbfd698408a3'/>
<id>urn:sha1:72f4ac776276d5832476130314e4fbfd698408a3</id>
<content type='text'>
#### Implement expensive datum validation for variant types ✎

- Introduce comprehensive validation for variant data types that checks offset invariants to ensure data integrity
- Add support for passing validation mode through fuzzer infrastructure to enable both cheap and expensive validation paths
- Extend test helpers to support different validation modes and integrate validation into various test cases
- Modify datum validation logic to differentiate between cheap and expensive validation modes, with expensive mode performing additional checks on dense union structures
- Update fuzzer components to validate data at multiple points during transformation to catch potential issues early

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