diff options
author | nsofya <nsofya@yandex-team.com> | 2023-06-26 15:08:20 +0300 |
---|---|---|
committer | nsofya <nsofya@yandex-team.com> | 2023-06-26 15:08:20 +0300 |
commit | 2bf9f8df5f754b37f7a80514b03265383cfddd56 (patch) | |
tree | a98dd0fe610775f9733289d17a893de3f7ddc0e2 /library/cpp/json/easy_parse/json_easy_parser_impl.h | |
parent | 925a7c884c3ab79db1246b6af276c9d5d605562e (diff) | |
download | ydb-2bf9f8df5f754b37f7a80514b03265383cfddd56.tar.gz |
Fix alter table for composite marks mode
Кейс Леши описан в новом тесте. При alter затирался флаг композитных засечек и применение схемы падало в колумншарде.
Я починила кейс Леши, но у меня в процессе возник вопрос: это ожидаемое поведение, что мы при включении флага ForceCompositeMarks при перезагрузке таблетки всем старым снапшотам автоматом проставим CompositeMarks = true?
Что пофиксила в итоге:
1) У всех новых standalone-таблиц новых и tablestorов выставляется в схеме признак наличия композитных засечек. Алтеры на них идут так же со включенными засечками. На ранее созданные standalone-таблиц (и tablestor-ы) все апдейты идут без композитных засечек, т.е они не включаются на старых данных ничего не ломается.
2) При выставлении ForceCompositeMarks, как мне пояснил snaury, ожидается, что произойдёт конвертация всех старых таблиц. поэтому мы и "перетираем" признак, записанный в схеме. Я добавила такую же логику в схемашарде, чтобы у нас приходили корректные алтеры после включения флага.
3) Добавила проверки совместимости схемы на Propose схемы
4) Унесла парсинг CompositeIndexKey в IndexInfo к парсингу протобуфа схемы, потому что он парится из протобуфа схемы
Diffstat (limited to 'library/cpp/json/easy_parse/json_easy_parser_impl.h')
0 files changed, 0 insertions, 0 deletions