fix(sql): wrap 73_complexes_master.sql in BEGIN/COMMIT #125

Merged
lekss361 merged 1 commit from fix/73-complexes-atomic into main 2026-05-14 20:29:29 +00:00
lekss361 commented 2026-05-14 20:23:25 +00:00 (Migrated from github.com)

Summary

Per code review audit (May 14): data/sql/73_complexes_master.sql без transaction wrapper. Backfill INSERTs + view recreations были individual auto-commit statements. Mid-file crash → orphan data.

Fix

  • BEGIN; at line 31 (после header comments)
  • COMMIT; at end of file
  • Wraps all 6 sections atomically (CREATE TABLE / CREATE INDEX / backfill INSERTs / DROP+CREATE VIEW)

No CONCURRENTLY conflict

Все 10 indexes используют CREATE INDEX IF NOT EXISTS (без CONCURRENTLY) → безопасно обернуть в одну tx.

Idempotency preserved

  • CREATE TABLE/INDEX IF NOT EXISTS — unchanged
  • ON CONFLICT (source, source_id) DO NOTHING — unchanged
  • DROP VIEW IF EXISTS — unchanged

Re-run safe.

Vault

fixes/Migration_73_Complexes_Atomic_May14.md — created.

Closes audit critical #5.

## Summary Per code review audit (May 14): `data/sql/73_complexes_master.sql` без transaction wrapper. Backfill INSERTs + view recreations были individual auto-commit statements. Mid-file crash → orphan data. ## Fix - `BEGIN;` at line 31 (после header comments) - `COMMIT;` at end of file - Wraps all 6 sections atomically (CREATE TABLE / CREATE INDEX / backfill INSERTs / DROP+CREATE VIEW) ## No CONCURRENTLY conflict Все 10 indexes используют `CREATE INDEX IF NOT EXISTS` (без CONCURRENTLY) → безопасно обернуть в одну tx. ## Idempotency preserved - CREATE TABLE/INDEX IF NOT EXISTS — unchanged - ON CONFLICT (source, source_id) DO NOTHING — unchanged - DROP VIEW IF EXISTS — unchanged Re-run safe. ## Vault `fixes/Migration_73_Complexes_Atomic_May14.md` — created. Closes audit critical #5.
lekss361 commented 2026-05-14 20:25:14 +00:00 (Migrated from github.com)

Bot review

Тривиальный wrap, 2 строки:

BEGIN; после header, COMMIT; в конце → 6 секций (CREATE TABLE / 10 INDEX / backfill INSERTs / DROP+CREATE VIEW) атомарны
Нет CONCURRENTLY-индексов — все используют CREATE INDEX IF NOT EXISTS без CONCURRENTLY, что совместимо с явной транзакцией (CONCURRENTLY запрещено внутри tx block)
Idempotency сохранена: CREATE TABLE/INDEX IF NOT EXISTS, ON CONFLICT DO NOTHING, DROP VIEW IF EXISTS — re-run safe

CI

  • backend: (statusCheckRollup пуст — CI ещё не зарегистрировал run)
  • frontend:

Мерджу когда оба зелёные.

## Bot review Тривиальный wrap, 2 строки: ✅ `BEGIN;` после header, `COMMIT;` в конце → 6 секций (CREATE TABLE / 10 INDEX / backfill INSERTs / DROP+CREATE VIEW) атомарны ✅ **Нет CONCURRENTLY-индексов** — все используют `CREATE INDEX IF NOT EXISTS` без CONCURRENTLY, что совместимо с явной транзакцией (CONCURRENTLY запрещено внутри tx block) ✅ Idempotency сохранена: `CREATE TABLE/INDEX IF NOT EXISTS`, `ON CONFLICT DO NOTHING`, `DROP VIEW IF EXISTS` — re-run safe ### CI - backend: ⏳ (statusCheckRollup пуст — CI ещё не зарегистрировал run) - frontend: ⏳ Мерджу когда оба зелёные.
lekss361 commented 2026-05-14 20:27:53 +00:00 (Migrated from github.com)

Tracking: part of audit batch #127. Vault: fixes/Migration_73_Complexes_Atomic_May14.md.

Tracking: part of audit batch #127. Vault: `fixes/Migration_73_Complexes_Atomic_May14.md`.
lekss361 commented 2026-05-14 20:28:54 +00:00 (Migrated from github.com)

Final review (SHA f65f03c, CI )

  • backend: SUCCESS
  • frontend: SUCCESS
  • Тривиальный wrap, no CONCURRENTLY conflict

approve merge

## Final review (SHA `f65f03c`, CI ✅) - backend: SUCCESS - frontend: SUCCESS - Тривиальный wrap, no CONCURRENTLY conflict approve merge
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#125
No description provided.