<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/yt/error/unittests, 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-04-27T13:12:31Z</updated>
<entry>
<title>Use implicit bool conversion for null check in origin_attributes.cpp</title>
<updated>2026-04-27T13:12:31Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-04-27T12:52:34Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b36733c26de293fbc1562234f05ce2b41f7251a2'/>
<id>urn:sha1:b36733c26de293fbc1562234f05ce2b41f7251a2</id>
<content type='text'>
commit_hash:cc1f5b9ecc05f6b098f1645ba338fc644c0bb53f
</content>
</entry>
<entry>
<title>Add TErrorOr::ValueOrCrash</title>
<updated>2026-04-03T04:44:41Z</updated>
<author>
<name>dann239</name>
<email>dann239@yandex-team.com</email>
</author>
<published>2026-04-03T04:28:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9cefd710e939e2e6e4ce1b91983e3b996d461837'/>
<id>urn:sha1:9cefd710e939e2e6e4ce1b91983e3b996d461837</id>
<content type='text'>
commit_hash:7a04b71703a53450dbaa8ec880141545e019a71e
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2026-03-03T13:03:50Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2026-03-03T12:21:23Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=eb66a9584abe4b7eb91694cbefec33abe5a9b1d0'/>
<id>urn:sha1:eb66a9584abe4b7eb91694cbefec33abe5a9b1d0</id>
<content type='text'>
commit_hash:a66d1ef65085fb8e8bfe860b8b7a95cbc5793851
</content>
</entry>
<entry>
<title>TErrorOr: propagate constuctible trait</title>
<updated>2025-12-23T21:12:59Z</updated>
<author>
<name>swarmer</name>
<email>swarmer@yandex-team.com</email>
</author>
<published>2025-12-23T20:43:18Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2886c13f53864ee46e682a8ee056b89f4e88b20d'/>
<id>urn:sha1:2886c13f53864ee46e682a8ee056b89f4e88b20d</id>
<content type='text'>
Constructors are now conditionally enabled based on whether T is copy- or move-constructible.
This allows constructibility to be checked, instead of causing compilation errors during template instantiation.
commit_hash:e31da137034705c5c73cd700d9476e96320f2f70
</content>
</entry>
<entry>
<title>YT: Do not merge OK errors to inner errors</title>
<updated>2025-12-16T21:07:43Z</updated>
<author>
<name>dgolear</name>
<email>dgolear@yandex-team.com</email>
</author>
<published>2025-12-16T20:43:58Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=145abafe39ddfc015a3751acd59e0460b6c2218b'/>
<id>urn:sha1:145abafe39ddfc015a3751acd59e0460b6c2218b</id>
<content type='text'>
commit_hash:7204f6d279e6660168d497e5fc43a8fd6a21acaa
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-12-16T11:19:15Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-12-16T10:56:34Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5d5ed092a63ec79ee5f56a015d75daf6de5bfeef'/>
<id>urn:sha1:5d5ed092a63ec79ee5f56a015d75daf6de5bfeef</id>
<content type='text'>
commit_hash:01073d5debabb2b7da51639f6d5137155132d193
</content>
</entry>
<entry>
<title>YT: Fix enricher, add from backtrace enricher</title>
<updated>2025-05-06T08:37:45Z</updated>
<author>
<name>pechatnov</name>
<email>pechatnov@yandex-team.com</email>
</author>
<published>2025-05-06T08:09:14Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=fa10d601265343a64d9d5b7b32eb133010b24127'/>
<id>urn:sha1:fa10d601265343a64d9d5b7b32eb133010b24127</id>
<content type='text'>
From backtrace enricher можно использовать для захвата бектрейсов при создании ошибок из исключений, а так же для перекладывания атрибутов из сложных исключений других библиотек.
commit_hash:76711bd3bb7dbc1e41e43f80d43340d2ce8e4df7
</content>
</entry>
<entry>
<title>YT: Add type name of std::exception to error text in TError constructor</title>
<updated>2025-04-01T12:13:05Z</updated>
<author>
<name>pechatnov</name>
<email>pechatnov@yandex-team.com</email>
</author>
<published>2025-04-01T11:51:45Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=15459267fcda53b29241b23b6fe98b1134986b53'/>
<id>urn:sha1:15459267fcda53b29241b23b6fe98b1134986b53</id>
<content type='text'>
Без этого, исключение о выходе за пределы массива в векторе выглядит так:

```
vector
    origin           (pid 178121, thread library-cpp-yt-)
    datetime        2025-03-31T14:59:49.069209Z
```

С фиксом:
```
vector
    origin           (pid 178121, thread library-cpp-yt-)
    datetime        2025-03-31T14:59:49.069209Z
    exception_type  std::out_of_range
```
commit_hash:7382eba16208f6847d581b901a7df4dfa39452b0
</content>
</entry>
<entry>
<title>YT-22593: More trivial TString-&gt;std::string migrations</title>
<updated>2025-02-22T14:48:29Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2025-02-22T14:28:25Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=59afaa0cb7cd89146dd10f5446256afcce33bd0e'/>
<id>urn:sha1:59afaa0cb7cd89146dd10f5446256afcce33bd0e</id>
<content type='text'>
[nodiff:runtime]
commit_hash:1ba799aed1703ab7c6304b6da7090b3337f768dd
</content>
</entry>
<entry>
<title>YT-21233: Adjust (To/From)ErrorAttributeValue CPOs, revert ConvertTo becoming CPO, move TErrorCode and TError to library/cpp/yt/error</title>
<updated>2024-12-25T04:31:55Z</updated>
<author>
<name>arkady-e1ppa</name>
<email>arkady-e1ppa@yandex-team.com</email>
</author>
<published>2024-12-25T04:12:23Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b5dd91799751f9924acb7c17ddad16ddb2086bba'/>
<id>urn:sha1:b5dd91799751f9924acb7c17ddad16ddb2086bba</id>
<content type='text'>
\[nodiff:caesar\]

List of changes:

 1) Make `ConvertTo` a normal function again (basically, a revert of previous change). It turned out to be very inconvenient entry point

 2) Introduce concept for "Primitive types" which are handled without yt/core module. Please note that inclusion of core **does not** affect work with primitive types (otherwise we would be facing and ODR violation). These are numerics, duration, instant, string-like objects and guid

 3) Introduce `FromErrorAttributeValue` which is a substitute to `ConvertTo` with special behavior (see below)

 4) Scheme for (de-)serialization has changed:

    1) Primitive types are handled via `ConvertToTextYsonString` and `ConvertFromTextYsonString`

    2) Other types are not supported without yt/core. Otherwise `ConvertToYsonString(value, EYsonFormat::Text)` used for serialization and `ConvertTo&lt;T&gt;(value)` for deserialization.

 5) New format of attribute value storage allows to not care about concrete type of the attribute (text yson strings can be detected since they start with `\"` and deserialized so are text yson bools, everything else is already human readable). This drops dependency on `TTokenizer`

 6) Some small parts (e.g. enums or constants or aliases) of yt/core/misc files were moved to library/cpp/yt/\* locations and re-included to drop dependencies of stripped\_error on them

 7) `TErrorAttributes` is now a simple hash map instead of a handle to `IAttributeDictionary`

 8) `ExtractFromAttributes` weak symbol is finally moved to library/cpp/yt/error due to point 9 allowing to fully drop dependency on `IAttributeDictionary`. Combined with point 7 this drops dep on yt/core/ytree altogether

 9) Moved `TErrorCode` to library/cpp/yt/error. There is a logger there which forces dep on library/cpp/yt/logging. It is not required really, and can be later removed

10) Moved `TError` with format and macroes to library/cpp/yt/error. It still (and probably forever will) depend on yson.

What can be done next: Switch TYsonString to TString and move ConvertTo/FromTextYsonString to library/cpp/yt/error. This would remove dep on library/cpp/yt/yson\_string
commit_hash:6f11dc478ab782a1f98a5aedcd45a4800d3f4e7b
</content>
</entry>
</feed>
