PROD bug: on-demand НСПД ingest (bulk_harvest.upsert_parcel, for parcels NOT pre-loaded) intermittently inserts quarter_cad_number=NULL at runtime → NotNullViolation → geometry never persists → POST /analyze for a real new parcel stuck "Геометрия загружается из НСПД…" forever (re-enqueues each call). Repro: 66:41:0610029:83 (real НСПД parcel; failing row had valid geom + props, only quarter_cad_number null). Code derives quarter_cad but NULL still reaches the INSERT via some runtime path (grid-walk). Migration 129: BEFORE INSERT OR UPDATE trigger on cad_parcels — when quarter_cad_number IS NULL and cad_num has >=3 colon-segments, derive it (first 3 segments: 66:41:0610029:83 → 66:41:0610029). Fixes ALL write paths at the DB level (quarter_cad_number is a pure derivation of cad_num). <3-segment cad_num intentionally left NULL → NOT NULL still rejects genuine garbage (no masking). Coexists with m.92 set_updated_at trigger. Idempotent. Dry-run-verified on prod catalog: null-quarter insert → derived 66:41:0610029; garbage <3seg still rejected. Verification = re-fetch 0610029:83 post-deploy. |
||
|---|---|---|
| .. | ||
| sql | ||
| playwright_state.json | ||