AURORA-1844: upd_form_cells возвращает строки целиком #231
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/215-aurora-1844-upd-form-cells-full-rows"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #215
Jira: AURORA-1844
Что сделано
upd_form_cells_full_rows:v3.upd_form_cells(p_form_id, p_sheet, p_changes, p_direction, p_sections)без снимка «до» и_jsonb_diff; после применения правок один вызов выборки, ответ - строки целиком (изменённые INPUT и все предки-агрегаты, включая неизменившиеся). Обёртка сp_user_id(0031) не тронута.v3._form_affected_rows(p_form_id, p_sheet, p_ids int[], p_direction, p_sections)- выборка затронутых строк (её перепишет AURORA-1850, AURORA-1845 будет звать отдельно).p_sections: убираются ключи верхнего уровня исключённых разделов; вложенные null сохраняются (очистка ячейки доходит до клиента).Тесты
tests/integration/test_upd_form_cells_full_rows.py(10 тестов) и переиспользуемыйtests/integration/sheet_contract.py(assert_patch_rows_match_sheet: строка ответа == строка GET по (row_type, depth, sort_order), для AURORA-1850): FORM_1 Support, FORM_2 AHR/CAP/OPER, FORM_4 (только своя программа/проект), AHR_RENT (+ сумма в GET AHR), неизменившийся предок, очистка уменьшает суммы, PATCH /cells с плохой колонкой - ошибка и ничего не применено,?sections=plan.Проверить руками
Замер до/после
Будет добавлен после ночного прогона на стенде perf/. Сценарий: coauthor на FORM_2/AHR до grow (
PERF_TARGETS='FORM_2/AHR/*',scroll-coauthor.spec.ts), метрикаmean_exec_timeupd_form_cellвsql/coauthor/sql_top.json: ~630 -> <=350 мс, вложенныхv_form2_viewна правку 1 вместо 2.Rulings I made
sectionsключей включены такжеfact_q1..fact_q4,sequestration,reserve,contract_detail(union списков FORM_1/2/4);headerне удаляется. Цена ошибки: лишний/недостающий ключ в ответе при sections.expense_item_idиз пути изменённых статей (программа может встречаться в нескольких разделах). Цена ошибки: пропущенная или лишняя строка GROUP/ITEM.unknown_columnсейчас даёт 400, как в существующем тесте).🤖 Generated with Claude Code
Проверка на PostgreSQL 15.12 (контроллер, 28.10): ветка + коммиты AURORA-1922 (PR #221), пустая БД, --init_db — миграция 0050 проходит; полный pytest: 212 passed, 4 skipped, 3 failed (исходные падения test). Новых падений нет.
Ночной замер на стенде perf/ (29.10, масштаб 1, D0 без grow, CPU 1x, arm-ka-* остановлены)
Сборки: «до» —
test2a28748(БД на 0049); «после» — этот PRf0cac30(D0 +alembic upgrade→ 0050). Фронт в обоих — prod-сборкаtest.Команда:
PERF_SQLSTATS_TAG=coauthor PERF_TARGETS='FORM_2/AHR/*' PERF_COAUTHOR_RATES=1,5 PERF_REPEATS=3 npx playwright test scenarios/scroll-coauthor.spec.ts(perf/results/<run>/sql/coauthor/sql_top.json).test)upd_form_cellv_form2_viewна правкуtools/get_vs_upd.py)Корректность ответа (на стенде): снимок GET всех 56 тяжёлых запросов на 1844 совпал байт в байт со снимком на 1850 (см. #244); отдельной сверки 1844 против
testя не делал — контракт ответа на правку покрыт контрактным тестом PR.Наблюдение O-1 (инструмент, не PR): на
testпрогон rate 5 упал во всех 3 повторах —coauthor_echoed=0 (sent=0, код бота null): бот не завершается за 10 с после SIGTERM (очередь правок при ~0,5 с на правку), его итог теряется. На 1844/1850 rate 5 проходит. Поэтому «до» для rate 5 нет.Файлы:
/private/tmp/claude-501/-Users-andrey-epifancev-projects-fomichev-claude/6fa9c75e-eb11-4e5d-98c1-05eb590ab14f/scratchpad/night/1850/(getupd-*.txt, api-1844-co.log), прогоныperf/results/n-base-co,n-p1844-coиperf/report-data/<run>/summary.mdв worktree perf-bench.🤖 Generated with Claude Code
Ночной замер — часть 2 (итог)
Сборки как в части 1 («до» — 1844
f0cac30, D0 + 0050). Добавлено: поведение в combo (все 14 PR волны 1, бэк combo без 1850; соавтор FORM_2/AHR rate 1 и 5, 2 повтора без trace).upd_form_cell(sql_top, D0)v_form2_viewза правку (вызовов / правок)page_ws_updates21.5 (rate 1) и 103.5 (rate 5) > 0, эхо доходит.v_form2_viewна правку — выполнен (310.9; 1 на правку)./private/tmp/claude-501/-Users-andrey-epifancev-projects-fomichev-claude/6fa9c75e-eb11-4e5d-98c1-05eb590ab14f/scratchpad/night/, прогонperf/results/n-combo-co/sql/coauthor/sql_top.json.