t-paliad-210 / paliadin-head msg 2002 + 2006. Applies huygens's HIGH/MED
proposals from docs/proposals/legal-citation-backfill-2026-05-18.md
(commit 391be09) plus m's FLAG walk-through:
§ 1 Easy wins — 6 rows (rule_code only).
§ 2 HIGH/MED proceeding-typed — 15 rows.
§ 3 HIGH/MED orphans — 47 rows.
§ 4 FLAG-A dedup (clean only) — 1 canonical fill + 3 archives
(Wiedereinsetzung §123-PatG twin,
Berufungsschrift, Berufungsbegründung).
Mängelbeseitigung 6× and Beginn-
Hauptsache 2× DEFERRED pending m's call
on distinct-context rule_codes[].
§ 5 FLAG-B court-scheduled — 26 rows. RoP.111 / RoP.118 / § 285 ZPO
/ § 300 ZPO / § 47 PatG etc.
§ 6 FLAG-C/D rubber-stamp — 5 rows. RoP.52 / RoP.235.1 / § 273 ZPO.
§ 7 FLAG-E service triggers — 6 rows. § 317 ZPO / § 99 / 47 / 79 PatG
/ R. 111 EPÜ.
§ 8 FLAG-F combined-pleading — 5 rows via rule_codes[] multi-cite.
§ 9 FLAG-G/H/I + RoP.271.b — 13 rows. Patentänderung INF/REV split,
H sub-paragraphs, RoP.069 by analogy,
+ RoP.271.b secondary cite on 5 UPC
initial submissions.
§ 10 R.19 label rename — defensive backstop for fermi's prod
write (t-paliad-207 consolidated).
§ 11 RoP.49.1 → RoP.049.1 — padding normalization on rev.defence.
FLAG-J 3 rows (d124c95b / 002c2ba7 / 902cc5d5) left NULL for m's
/admin/rules pickup. 11 rows total stay NULL post-mig (3 FLAG-J + 8
deferred dedup).
Snapshot table paliad.deadline_rules_pre_097 preserves pre-mig state
including the distinct rule_codes[] on the deferred Mängelbeseitigung +
Beginn-Hauptsache sets.
Dry-run on supabase produced expected counts:
null_count=11, old_outlier=0, new_padded=2
Idempotent: re-applying matches no rows. Audit-trail through mig 079
trigger via set_config(paliad.audit_reason, ..., true).
60 lines
2.4 KiB
SQL
60 lines
2.4 KiB
SQL
-- Reverses mig 097. Restores rule_code + legal_source on every row
|
|
-- touched by the backfill (and the rev.defence normalization) from the
|
|
-- paliad.deadline_rules_pre_097 snapshot, refreshes the deadline_search
|
|
-- materialized view, then drops the snapshot.
|
|
--
|
|
-- audit_reason wrapper required by the mig 079 audit trigger.
|
|
|
|
SELECT set_config(
|
|
'paliad.audit_reason',
|
|
'mig 097 (down): revert t-paliad-210 legal-citation backfill — restore rule_code/legal_source from deadline_rules_pre_097 snapshot',
|
|
true);
|
|
|
|
-- =============================================================================
|
|
-- 1. Restore rule_code + legal_source from the pre_097 snapshot for every
|
|
-- row whose current values diverge from the snapshot. Symmetric across
|
|
-- the § 1 / § 2 / § 3 backfills and the § 5 rev.defence normalization
|
|
-- in one pass. If the snapshot table is missing (down run before up),
|
|
-- the restore is a no-op.
|
|
-- =============================================================================
|
|
|
|
DO $$
|
|
DECLARE
|
|
v_snap_exists boolean;
|
|
BEGIN
|
|
SELECT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.tables
|
|
WHERE table_schema = 'paliad'
|
|
AND table_name = 'deadline_rules_pre_097'
|
|
) INTO v_snap_exists;
|
|
|
|
IF NOT v_snap_exists THEN
|
|
RAISE NOTICE
|
|
'mig 097 (down): snapshot table paliad.deadline_rules_pre_097 missing — nothing to restore';
|
|
RETURN;
|
|
END IF;
|
|
|
|
UPDATE paliad.deadline_rules dr
|
|
SET rule_code = snap.rule_code,
|
|
legal_source = snap.legal_source
|
|
FROM paliad.deadline_rules_pre_097 snap
|
|
WHERE dr.id = snap.id
|
|
AND (dr.rule_code IS DISTINCT FROM snap.rule_code
|
|
OR dr.legal_source IS DISTINCT FROM snap.legal_source);
|
|
END $$;
|
|
|
|
-- =============================================================================
|
|
-- 2. Refresh deadline_search so the reverted rule_code / legal_source
|
|
-- values repopulate the materialized view.
|
|
-- =============================================================================
|
|
|
|
REFRESH MATERIALIZED VIEW paliad.deadline_search;
|
|
|
|
-- =============================================================================
|
|
-- 3. Drop the snapshot so a re-applied up migration captures a fresh
|
|
-- snapshot of the current state.
|
|
-- =============================================================================
|
|
|
|
DROP TABLE IF EXISTS paliad.deadline_rules_pre_097;
|