| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
std::string everywhere
done
commit_hash:8a83afa39917ba66a5161388a7cd74a4488d9908
|
|
|
|
| |
commit_hash:9c38bbe53e87d788bf4d4e1155e2c080773bacc0
|
|
|
|
| |
commit_hash:c87fb9e7c5cb8a896dd4b758ad73c5c540339df7
|
|
|
|
| |
commit_hash:19481c9fbb008aab4f4d676f1a3a242f6e90e90e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
becoming CPO, move TErrorCode and TError to library/cpp/yt/error
\[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<T>(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
|
|
|
|
| |
commit_hash:a31e79330e3ec72361743d932a47fc67f92fb7a0
|
|
|
|
| |
commit_hash:41c16027e2f796197b98307419a63da9fa3f1a88
|
|
|
|
| |
commit_hash:f0e4b9bf3cc217402238bf1efcc4b8695f6a3709
|
|
|
|
| |
commit_hash:b3038041fc2814c9002bbb5e5d9e96520a3fb60a
|
|
|
|
| |
commit_hash:534ea2df7961feea6932d1e243df20d825c7fe69
|
|
|
|
|
|
| |
library/cpp/yt/yson_string to be later used for error attribute serialization
commit_hash:f7632c9622c71e023148c9454a9889e9cac75ecd
|
|
|
|
| |
commit_hash:690d178c5c95ad7106aee6c26a031e6eeec1f093
|
|
|
|
| |
commit_hash:57515baf5d33fd78c2555cb2b3351498b9189c72
|
|
|
|
|
|
|
| |
Если в редиректе приходит url со схемой **http (без s !!!)**, то порт выставляется ++443++
Этот PR фиксит это поведение
commit_hash:ef496e4f1cb08f3ba3b9b0f89a34f077cce38e00
|
|
|
|
| |
commit_hash:79b0a0b437e41879c3a7d4c079ab571bbaafd45f
|
|
|
|
| |
commit_hash:b1f7ffc9e8130d80fb923e4c0f5dc58bc68ce1be
|
|
|
|
| |
commit_hash:b1009a56f6e70d65c67b72f3079ed71e43b48a7c
|
|
|
|
| |
commit_hash:7d3055f901a21e63f7860f443252a86e9895fd08
|
|
|
|
| |
commit_hash:db2785d0d17510b53aeaec1e30271e6b08e07db1
|
|
|
|
| |
commit_hash:a9a7c2df09742a540851227c4fcb7d925edd9793
|
|
|
|
| |
commit_hash:d483051ff24331bcda69d8afa1413158c9e01925
|
|
|
|
| |
commit_hash:70fc3cba6ca373b988a4d0c0de6d8e2b2028b495
|
|
|
|
| |
commit_hash:ed49b07b792d94c6e0da54331828dae3a5cd1e2b
|
|
|
|
|
|
|
| |
Add test to verify the threads limit
Try to fix; Limit number of gRPC threads.
commit_hash:d525e94e0ef397bf05d367ec9904d674c17d0d76
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also make input string reference const
<https://github.com/ydb-platform/ydb/issues/12306>
Make input string reference const
Make sure returned TStringBuffers do not change during splitter lifetime
splitter.Consume() возвращает TStringBuf.
Если в колонке есть ескейпинг кавычек, вся колонка обрамлена двойными кавычками (`"`), а внутри для ескейпинга двойных кавычек используются две идущие подряд двойные кавычки (`""`).
В таком случае вернуть TStringBuf, ссылающийся на кусок входящего TString, не получится, т.к. нужной подстроки в нем не существует.
Для этого используется мембер TVector\<TStringbuf\> CustomStrings. В него накидываются нужные кусочки из исходной строки и в конце складываются в мембер-строку TString CustomString
Например, из строки `"abc""cde""efg"` копились кусочки `abc"`, `cde"`, `efg` и в конце склеивались.
И возвращался TStringBuf из этой строки-мембера.
Проблема в том, что если в другой колонке той же строки также встречались кавычки с ескейпингом, эта строка-мембер CustomString очищалась. При том, что на неё всё еще ссылался возвращённый ранее TStringBuf.
В итоге "предыдущий" TStringBuf либо начинал ссылаться на часть новой строки, если новая строка была длиннее, либо на часть новой строки \+ рандомный набор байт в памяти, если новая строка оказывалась короче.
Фикс в том, чтобы хранить все строки, сгенерённые сплиттером, всё время жизни сплиттера
commit_hash:aa4957e1d8030cd48d06eaa16a7ad61e878348f8
|
|
|
|
| |
commit_hash:06fd6ffa9ec768168c34547fcdfb15e2f9ad75f8
|
|
|
|
| |
commit_hash:39518295f157c161f6c0a25a1df24b32a6cff296
|
|
|
|
| |
commit_hash:7b57398460fb850349f35c543b8cef63f6490b6b
|
|
|
|
| |
commit_hash:50f729d3716d8b1f5b852cfc008e228172fb79c4
|
|
|
|
| |
commit_hash:87c6f9898873ec96e4aa9dc4c7df86e67a11e313
|
|
|
|
| |
commit_hash:7dbe58a7a8a7980241f20a2e53ace94a62c541df
|
|
|
|
| |
commit_hash:97159680fa733af4212c094e917bc78a47eb0c15
|
|
|
|
| |
commit_hash:cbf5ab65e5ba1b2d286f974a6b6b463ed152b381
|
|
|
|
| |
commit_hash:2404d2a79d4961dedf17f7d0cbec38bcabb78014
|
|
|
|
| |
commit_hash:6f0d83406a245425d156e961c3519d5bd822857a
|
|
|
|
| |
commit_hash:c0112c0409a0972eb859b32a014980020df7ce0a
|
|
|
|
| |
commit_hash:fac37a51fb5b0fdd660beccb43a2a8861308e39f
|
|
|
|
| |
commit_hash:320ab736dea5dae74e2ec8c344fb915be4c4df99
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TErrorAttribute from yt/core
Plan:
1) Remove `IAttributedDictionary` type from the public API. \+
2) Remove `Set` method from public API in favor of `operator<<=`. \+
3) Adopt `ConvertTo<T>` (or other name) CPO with proper extension into `NYT::NYson::ConvertTo` from `yt/core`.
4) Use CPO from (3) to eliminate direct dependency on `yt/core` of `Get/Find` methods from attributes API.
5) Adopt `ConvertToYsonString` (or other name) CPO with proper extension into `yt/core` customisations.
6) Use CPO from (5) to eliminate direct dependency on `yt/core` of `TErrorAttribute` ctor.
7) Swap attributes implementation to the one which doesn’t use `IAttributeDictionary`.
8) At this point `stripped_error*` can be moved to library/cpp/yt and so can recursively dependant on THROW macro methods `Get/Find/…`.
9) Adjust CPO’s to work with `std::string` instead of `TYsonString` assuming text format to be used (maybe `TString` for now).
10) Remove dep of `library/cpp/yt/error` on `yson` entirely.
This pr addresses 5-6 steps of plan. Below is a brief explanation of design decisions. We also expressed everything related to key-value code in terms of aliases of `TErrorAttribute` so that later we could make a relatively simple switch to `std::string`. We expect to do steps 7-8 in the next pull request as everything should be ready
commit_hash:de9feca2bd24d823b33d904ef0fa5f4856f9b020
|
|
|
|
| |
commit_hash:60e005cdf76d5bff2a370a6b8f35ef4f6792f414
|
|
|
|
| |
commit_hash:81fb555c66d5ab8c5c260658be43bb7b61ab2622
|
|
|
|
| |
commit_hash:d73b9a2f472fbcf5f3ebc54787a964c15fba2504
|
|
|
|
| |
commit_hash:bbf24592c367fa158fbc53e041fe367374d0750e
|
|
|
|
| |
commit_hash:af73a3ea146e2eb6141cb19913e534d75ba573fd
|
|
|
|
| |
commit_hash:9c2ada5b95be3f810d2750406d74d839bd2598ff
|
|
|
|
| |
commit_hash:4591e7a8126c65672359f0cdee64ad789ca9ae74
|
|
|
|
| |
commit_hash:89b2dfdd1bb0d38b205f23744652b1db522e06c4
|
|
|
|
| |
commit_hash:1bcd4492a3f6a28a2be8e27b5660e98cc8e4c8d0
|
|
|
|
| |
commit_hash:1c25da3ce2125ca4d8d1e3e026ef0d2a6d0aa355
|
|
|
|
| |
commit_hash:b2cf3b80a36e4867b03a79f3e2c552f19920016f
|