aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/string_utils/csv
Commit message (Collapse)AuthorAgeFilesLines
* Make sure returned TStringBuffers do not change during splitter lifetime. ↵pnv12024-12-102-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Intermediate changesrobot-piglet2024-07-191-0/+1
|
* feat contrib: aiogram 3armenqa2024-01-196-106/+0
| | | | Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
* External build system generator release 65robot-ya-builder2023-12-051-3/+3
| | | | Update tools: yexport, os-yexport
* add darwin-arm64 CMakeListsdcherednik2023-11-202-0/+19
|
* add ymake export to ydbalexv-smirnov2023-06-131-0/+7
|
* Remove extra semicolon (library)bulatman2023-06-101-2/+2
|
* External build system generator release 29robot-ya-builder2023-04-191-1/+1
| | | Update tools: yexport
* Revert ymake build from ydb oss exportalexv-smirnov2023-03-281-7/+0
|
* External build system generator release 21robot-ya-builder2023-03-171-3/+3
| | | Update tools: yexport
* add library/cpp/actors, ymake build to ydb oss exportalexv-smirnov2023-03-151-0/+7
|
* Intermediate changesrobot-piglet2023-03-092-0/+19
|
* Intermediate changesrobot-piglet2023-03-073-2/+2
|
* External build system generator release 17robot-ya-builder2023-03-061-1/+1
| | | Update tools: yexport
* Intermediate changesrobot-piglet2023-02-073-3/+3
|
* Intermediate changesrobot-piglet2023-02-073-3/+3
|
* External build system generator release 12robot-ya-builder2023-01-311-1/+1
| | | Update tools: yexport
* External build system generator release 8robot-ya-builder2023-01-174-4/+4
| | | Update tools: yexport
* parse line on deploy by optionivanmorozov2022-12-236-0/+214