<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/string_utils/csv, 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>2025-06-25T08:35:36Z</updated>
<entry>
<title>Improve csv parsing speed in С++ csv library</title>
<updated>2025-06-25T08:35:36Z</updated>
<author>
<name>pnv1</name>
<email>pnv1@yandex-team.com</email>
</author>
<published>2025-06-25T07:46:15Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7dff50ae6cd121950e4225dfe6395e44947263ae'/>
<id>urn:sha1:7dff50ae6cd121950e4225dfe6395e44947263ae</id>
<content type='text'>
Improve csv parsing speed in csv library

На примере ВМ в QYP на ssd скорость чтении csv этой либой:

- до этих изменений стабильно показывает 383-387 MB/s

- после этих изменений стабильно показывает 613-615 MB/s

**++Просьба PR пока не мерджить++**.

Пока что надеюсь просто получить шип от овнеров. Мы собираем метрики по текущей производительности в процессе импорта в YDB CLI. Чуть позже, если всё ОК, вмерджу этот PR, чтобы мы замерили разницу.
commit_hash:a23fc7e631733ffe3cae2941da8b3bdb75bccc94
</content>
</entry>
<entry>
<title>Make sure returned TStringBuffers do not change during splitter lifetime. Also make input string reference const</title>
<updated>2024-12-10T14:11:35Z</updated>
<author>
<name>pnv1</name>
<email>pnv1@yandex-team.com</email>
</author>
<published>2024-12-10T13:48:40Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=eb079fb9449e62da43aac095244be3ffbe658cdf'/>
<id>urn:sha1:eb079fb9449e62da43aac095244be3ffbe658cdf</id>
<content type='text'>
&lt;https://github.com/ydb-platform/ydb/issues/12306&gt;

Make input string reference const

Make sure returned TStringBuffers do not change during splitter lifetime

splitter.Consume() возвращает TStringBuf.

Если в колонке есть ескейпинг кавычек, вся колонка обрамлена двойными кавычками (`"`), а внутри для ескейпинга двойных кавычек используются две идущие подряд двойные кавычки (`""`).

В таком случае вернуть TStringBuf, ссылающийся на кусок входящего TString, не получится, т.к. нужной подстроки в нем не существует.

Для этого используется мембер TVector\&lt;TStringbuf\&gt; CustomStrings. В него накидываются нужные кусочки из исходной строки и в конце складываются в мембер-строку TString CustomString

Например, из строки  `"abc""cde""efg"`  копились кусочки `abc"`, `cde"`, `efg` и в конце склеивались.

И возвращался TStringBuf из этой строки-мембера.

Проблема в том, что если в другой колонке той же строки также встречались кавычки с ескейпингом, эта строка-мембер CustomString очищалась. При том, что на неё всё еще ссылался возвращённый ранее TStringBuf.

В итоге "предыдущий" TStringBuf либо начинал ссылаться на часть новой строки, если новая строка была длиннее, либо на часть новой строки \+ рандомный набор байт в памяти, если новая строка оказывалась короче.

Фикс в том, чтобы хранить все строки, сгенерённые сплиттером, всё время жизни сплиттера
commit_hash:aa4957e1d8030cd48d06eaa16a7ad61e878348f8
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2024-07-19T14:41:55Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2024-07-19T14:30:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b48cb40b16a2a26d360ddcb809dcbf48a3843513'/>
<id>urn:sha1:b48cb40b16a2a26d360ddcb809dcbf48a3843513</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat contrib: aiogram 3</title>
<updated>2024-01-19T10:10:03Z</updated>
<author>
<name>armenqa</name>
<email>armenqa@yandex-team.com</email>
</author>
<published>2024-01-19T09:23:50Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2de0149d0151c514b22bca0760b95b26c9b0b578'/>
<id>urn:sha1:2de0149d0151c514b22bca0760b95b26c9b0b578</id>
<content type='text'>
Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
</content>
</entry>
<entry>
<title>External build system generator release 65</title>
<updated>2023-12-05T09:25:06Z</updated>
<author>
<name>robot-ya-builder</name>
<email>robot-ya-builder@yandex-team.com</email>
</author>
<published>2023-12-05T08:10:55Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=96458ea3c773a8a3edb707f73db0cdedbfcfad90'/>
<id>urn:sha1:96458ea3c773a8a3edb707f73db0cdedbfcfad90</id>
<content type='text'>
Update tools: yexport, os-yexport
</content>
</entry>
<entry>
<title>add  darwin-arm64 CMakeLists</title>
<updated>2023-11-20T11:34:20Z</updated>
<author>
<name>dcherednik</name>
<email>dcherednik@ydb.tech</email>
</author>
<published>2023-11-20T10:23:37Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=ffff7a34e41bf0dd7d5e0f3d78aeaebbf56200e6'/>
<id>urn:sha1:ffff7a34e41bf0dd7d5e0f3d78aeaebbf56200e6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add ymake export to ydb</title>
<updated>2023-06-13T08:05:01Z</updated>
<author>
<name>alexv-smirnov</name>
<email>alex@ydb.tech</email>
</author>
<published>2023-06-13T08:05:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0'/>
<id>urn:sha1:bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove extra semicolon (library)</title>
<updated>2023-06-10T10:55:11Z</updated>
<author>
<name>bulatman</name>
<email>bulatman@yandex-team.com</email>
</author>
<published>2023-06-10T10:55:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d570836295decdb827b4f95d75ebf2d8d9232b9b'/>
<id>urn:sha1:d570836295decdb827b4f95d75ebf2d8d9232b9b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>External build system generator release 29</title>
<updated>2023-04-19T11:10:48Z</updated>
<author>
<name>robot-ya-builder</name>
<email>robot-ya-builder@yandex-team.com</email>
</author>
<published>2023-04-19T11:10:48Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=887be65957040bac40fa22a2af242de88920eba7'/>
<id>urn:sha1:887be65957040bac40fa22a2af242de88920eba7</id>
<content type='text'>
Update tools: yexport</content>
</entry>
<entry>
<title>Revert ymake build from ydb oss export</title>
<updated>2023-03-28T19:25:04Z</updated>
<author>
<name>alexv-smirnov</name>
<email>alex@ydb.tech</email>
</author>
<published>2023-03-28T19:25:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b8a17f9b1c166d2e9a26b99348a4c29d972caf55'/>
<id>urn:sha1:b8a17f9b1c166d2e9a26b99348a4c29d972caf55</id>
<content type='text'>
</content>
</entry>
</feed>
