<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/tools, branch CLI_2.21.0</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=CLI_2.21.0</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=CLI_2.21.0'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-05-16T10:00:41Z</updated>
<entry>
<title>Intermediate changes</title>
<updated>2025-05-16T10:00:41Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-05-16T09:45:07Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=035528736f4e0a997ad6b954b904140a118b5714'/>
<id>urn:sha1:035528736f4e0a997ad6b954b904140a118b5714</id>
<content type='text'>
commit_hash:9c2d6168402f00f42c25eb95631b419c1483b978
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-05-12T11:19:09Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-05-12T11:03:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=548b750f67e221ea68eeb4b01bf2dca42b53fbf9'/>
<id>urn:sha1:548b750f67e221ea68eeb4b01bf2dca42b53fbf9</id>
<content type='text'>
commit_hash:7a1e89d4ac973444c2b7275f326889e14b6f9e3d
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-05-12T11:05:50Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-05-12T10:53:24Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7a941ebd252fd7442b4d1d34d31d72e971ad20bf'/>
<id>urn:sha1:7a941ebd252fd7442b4d1d34d31d72e971ad20bf</id>
<content type='text'>
commit_hash:3a624a323006078de71f50747f7b2e8cadba7ccd
</content>
</entry>
<entry>
<title>YQL-19747 Complete folder, table and cluster names</title>
<updated>2025-05-06T13:04:08Z</updated>
<author>
<name>vityaman</name>
<email>vityaman.dev@yandex.ru</email>
</author>
<published>2025-05-06T12:49:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9c3fdca51d8ae892c5ad8f6ef92df73fafc09e28'/>
<id>urn:sha1:9c3fdca51d8ae892c5ad8f6ef92df73fafc09e28</id>
<content type='text'>
---

- Related to `YQL-19747`
- On top of https://github.com/ytsaurus/ytsaurus/pull/1253
- Related to https://github.com/ydb-platform/ydb/issues/9056
- Related to https://github.com/vityaman/ydb/issues/14
- Related to https://github.com/vityaman/ydb/issues/35
- Related to https://github.com/vityaman/ydb/issues/40

---

Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1257
commit_hash:0b842abb27184c88b8177beeea29fb1ea86b7a04
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-05-05T14:39:46Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-05-05T14:03:32Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=00aea5676295184d25f00b8b27129a0ede715a03'/>
<id>urn:sha1:00aea5676295184d25f00b8b27129a0ede715a03</id>
<content type='text'>
commit_hash:6a772aebd3249332cf554bea9ed67a25f3b45876
</content>
</entry>
<entry>
<title>YQL-19747 Introduce SimpleSchemaGateway</title>
<updated>2025-04-29T17:50:11Z</updated>
<author>
<name>vityaman</name>
<email>vityaman.dev@yandex.ru</email>
</author>
<published>2025-04-29T17:36:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0c2a81c9d391c539cfb25930a38fe153aa502255'/>
<id>urn:sha1:0c2a81c9d391c539cfb25930a38fe153aa502255</id>
<content type='text'>
Introduce the `SimpleSchemaGateway` to make it easier to implement `SchemaGateway`s. The idea is that actually existing schema providers really do not support filtration such as by name and type, so in practice they return us the whole list and we need to filter it by hand. The `SimpleSchemaGateway` to `SchemaGateway` adapter does this for us -- we only need to implement a path splitting and folder listing.

The other and important feature of the `SimpleSchemaGateway` is that it is simple to implement a caching decorator for it -- just store a mapping `Path -&gt; [FolderEntry]`, while caching a `SchemaGateway` with filters is soooo not trivial.

I also added string constants for known folder entry types, because they should be documented somewhere.

---

- Related to `YQL-19747`
- Related to https://github.com/vityaman/ydb/issues/14
- Related to https://github.com/vityaman/ydb/issues/34

---

Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1245
commit_hash:dda6dcac544ca95d5e8e08f1e7de9de6b5770f25
</content>
</entry>
<entry>
<title>YQL-19747 Enable custom NameSet and FrequencyData</title>
<updated>2025-04-28T15:13:27Z</updated>
<author>
<name>vityaman</name>
<email>vityaman.dev@yandex.ru</email>
</author>
<published>2025-04-28T14:50:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f35bf94dbc72f06a35459f8d854866b83b9a49ea'/>
<id>urn:sha1:f35bf94dbc72f06a35459f8d854866b83b9a49ea</id>
<content type='text'>
Clients might want to use custom `NameSet` and `FrequencyData` in their environment, for example, to get their private UDFs and to have more relevant ranking that includes their private UDF and respect their usage pattern.

To achieve this goal I decided to load pure `NameSet` and `FrequencyData` and provide functions for pruning. Also I checked defaults and decided that it is more common for a client to create a `StaticNameService` from pure `NameSet` and `FrequencyData` to keep their pruning consistent.

I also extracted a separate module `ranking`. It will be needed when I will implement `UnionNameService` to union `StaticNameService` and `SchemaNameService`. `UnionNameService` will load `Limit` names from each child and then crop them to sorted prefix of length `Limit` using `IRanking`.

---

- Related to `YQL-19747`
- Related to https://github.com/ydb-platform/ydb/issues/9056
- Related to https://github.com/vityaman/ydb/issues/14

---

Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1246

Co-authored-by: vvvv &lt;vvvv@yandex-team.com&gt;
Co-authored-by: vvvv &lt;vvvv@yandex-team.com&gt;
commit_hash:cdca301a58a34e56d537a447b4ff779cd70faea6
</content>
</entry>
<entry>
<title>YQL-19747: Refactor sql/v1/complete usage of Future and Ptr</title>
<updated>2025-04-25T13:30:34Z</updated>
<author>
<name>vityaman</name>
<email>vityaman.dev@yandex.ru</email>
</author>
<published>2025-04-25T13:08:47Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2b59203eb9ccded916b53b3410e3f15abf4b623f'/>
<id>urn:sha1:2b59203eb9ccded916b53b3410e3f15abf4b623f</id>
<content type='text'>
- [x] Chained futures, add `CompleteAsync` method (then will migrate the YDB CLI on it).
- [x] Removed deadlined and fallback NameService as unused
- [x] Annotate thread-safe methods with `const` and use `AtomicSharedPtr` for them.
- [x] Move `name` to `name/service` with backward compatibility with the YDB CLI.

---

`CompletionEngine` is left thread-unsafe because of the dependency chain `CompletionEngine -&gt; LocalSyntaxAnalysis -&gt; C3Engine` which is thread-unsafe, but readonly indexed data structures such as `Ranking` and `NameService` are annotated with const and distributed via shared pointers.

I removed deadlined and fallback name services because the first is stupid the second is ahead of its time and is better to be added later to keep interfaces as minimal as possible.

---

The migration on async complete plan:
1. Introduce CompleteAsync
2. Migrate clients on CompleteAsync
3. Make Complete to return Future
4. Migrate clients on Complete
5. Remove CompleteAsync

---

- Related to https://github.com/ydb-platform/ydb/issues/9056
- Related to https://github.com/vityaman/ydb/issues/33
- Related to https://github.com/vityaman/ydb/issues/31

---

Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1241

Co-authored-by: vvvv &lt;vvvv@yandex-team.com&gt;
Co-authored-by: vvvv &lt;vvvv@yandex-team.com&gt;
commit_hash:497cc081ab78bebf7354e0acfaa418d936cc8240
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-04-22T10:07:14Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-04-22T09:45:53Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=57c56063ee203e5fb003e293f449a635f46053e0'/>
<id>urn:sha1:57c56063ee203e5fb003e293f449a635f46053e0</id>
<content type='text'>
commit_hash:112bf21627e2883a424e58d1a65caf7af62c24c8
</content>
</entry>
<entry>
<title>YQL-19861 abi, udf resolvers, test, pass via yt gateways</title>
<updated>2025-04-21T18:26:59Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-04-21T17:53:56Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=108c1aa409626aa29ca728edafd01fbbd7a1b00e'/>
<id>urn:sha1:108c1aa409626aa29ca728edafd01fbbd7a1b00e</id>
<content type='text'>
commit_hash:6e3f5fac6a8598586987b52d749644d1ce1fccbe
</content>
</entry>
</feed>
