<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/sql/v1, 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-23T16:44:21Z</updated>
<entry>
<title>Intermediate changes</title>
<updated>2026-07-23T16:44:21Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2026-07-23T16:19:39Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2028a0f9f3d1001befbf67900a5230a452fbb4be'/>
<id>urn:sha1:2028a0f9f3d1001befbf67900a5230a452fbb4be</id>
<content type='text'>
commit_hash:e9f9f235622634ecdf8656af507d5c1ba8dc0375
</content>
</entry>
<entry>
<title>Add CREATE IF NOT EXISTS, CREATE OR REPLACE, ALTER/DROP IF EXISTS for SECRET operations</title>
<updated>2026-07-23T13:17:44Z</updated>
<author>
<name>azevaykin</name>
<email>azevaykin@yandex-team.com</email>
</author>
<published>2026-07-23T12:31:05Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7f1caa8883ece537eda0cc9c5c5dc03f007fd9ae'/>
<id>urn:sha1:7f1caa8883ece537eda0cc9c5c5dc03f007fd9ae</id>
<content type='text'>
#### Add CREATE IF NOT EXISTS, CREATE OR REPLACE, ALTER/DROP IF EXISTS for SECRET operations ✎

- Introduce support for `CREATE IF NOT EXISTS` and `CREATE OR REPLACE` syntax for secret creation, allowing conditional secret creation based on existence
- Add `ALTER IF EXISTS` and `DROP IF EXISTS` syntax for secret modification and deletion, preventing errors when operating on non-existent secrets
- Extend secret operation parsing to handle optional keywords for conditional operations while maintaining backward compatibility
- Update secret parameter validation and error handling to support new conditional operation modes
- Add comprehensive test coverage for all new conditional secret operations including error cases and expression support

&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:5da22cd6acc7bb610627c562280556c497d57a10
</content>
</entry>
<entry>
<title>YQL-21333: Refactor sql/v1/translation</title>
<updated>2026-07-23T06:46:01Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-07-23T06:15:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=13a9129eb98f75740fa12f222e3b679f55f73d90'/>
<id>urn:sha1:13a9129eb98f75740fa12f222e3b679f55f73d90</id>
<content type='text'>
commit_hash:9ad4de6a95ef5173379f58dc372a6b208386f34b
</content>
</entry>
<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>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>
<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-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>Watermarks: YQL: allow watermark options</title>
<updated>2026-07-14T13:02:19Z</updated>
<author>
<name>vokayndzop</name>
<email>vokayndzop@yandex-team.com</email>
</author>
<published>2026-07-14T12:30:48Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7ef86b63b519773218ad8f60eb2ec06656ef3945'/>
<id>urn:sha1:7ef86b63b519773218ad8f60eb2ec06656ef3945</id>
<content type='text'>
#### Allow watermark options in YQL ✎

- Extend watermark functionality to support additional configuration options such as watermark granularity and idle timeout
- Modify internal representation to include watermark settings as a separate parameter in watermark generator nodes
- Update SQL parser to recognize and process watermark-related hints with proper validation
- Add validation logic to ensure watermark options conform to expected format and types
- Introduce unit tests to verify the new watermark option parsing and 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:76e9ae7e1709a2bcd8cd2ccaaf132ceedac0517f
</content>
</entry>
<entry>
<title>Change `MATERIALIZE` grammar to exclude `WITH` statement ambiguity</title>
<updated>2026-07-10T15:57:46Z</updated>
<author>
<name>udovichenko-r</name>
<email>udovichenko-r@yandex-team.com</email>
</author>
<published>2026-07-10T15:24:05Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bfc3e416ce63656ec74e61b20864880e741ecf20'/>
<id>urn:sha1:bfc3e416ce63656ec74e61b20864880e741ecf20</id>
<content type='text'>
#### Change MATERIALIZE grammar to exclude hints ambiguity ✎

- Restructured the MATERIALIZE statement grammar to resolve ambiguity between table hints and cluster specification by reordering clauses to place hints after the target cluster
- Updated minimum language version requirement for the MATERIALIZE feature to 2026.02
- Modified format tests and validation logic to align with the new grammar structure
- Added tests for single and multiple hints to ensure proper parsing and handling
- Updated canonical test outputs to reflect the new syntax order with hints positioned after the INTO clause and before the ON clause

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