m's ask 2026-05-18 18:08: 'the infringement parts (like Replik) should show above the part for the revocation (Erwiderung Nichtigkeitswider- klage)'. Three tracks (infringement / revocation / amendment) coexist on upc.inf.cfi once with_ccr / with_amend are set. They share tied calendar dates because R.29/R.30/R.32 all key off the SoD or its descendants. Current sequence_orders (post-mig 100) interleave them arbitrarily; user sees Erwiderung-zur-CCR before Replik even though Replik is the infringement-side response to the same triggering event. **Re-sequencing** keeps the existing soc=0, prelim=5, sod=10 head and the interim=40 / oral=50 / decision=60 / cost_app=70 / appeal_spawn=80 tail untouched. The 10 reshuffled rules move into a track-aware arrangement: 10-19 infringement: sod=10, reply=12, rejoin=14 20-29 revocation: ccr=20, def_to_ccr=22, reply_def_ccr=24, rejoin_reply_ccr=26 30-39 amendment: app_to_amend=30, def_to_amend=32, reply_def_amd=34, rejoin_amd=36 Tied-date ordering after the reshuffle: D+3mo: sod(10), ccr(20) — SoD then its CCR D+5mo: reply(12), def_to_ccr(22), app_to_amend(30) — inf → rev → amd D+7mo: reply_def_ccr(24), def_to_amend(32) — rev → amd D+8mo: rejoin_reply_ccr(26), reply_def_amd(34) — rev → amd **Two-phase swap** — every reshuffled rule first parks at sequence 1000+number, then jumps to its final value. Prevents transient sequence-collisions if Postgres evaluates UPDATEs in parallel within the same statement. Each UPDATE is keyed by submission_code AND the SOURCE sequence_order, so re-apply is a no-op. audit_reason set_config at top per mig 099 hotfix pattern. Renumbered from mig 102 → mig 105 to avoid collision with archimedes system_audit_log mig 102 (merged between fermi's parked session and now); follows mig 104 (Einspruch name + CCR priority).
212 lines
7.8 KiB
SQL
212 lines
7.8 KiB
SQL
-- t-paliad-207 — re-sequence upc.inf.cfi rules so within any tied-date
|
|
-- group the infringement-track responses sit ABOVE the revocation-
|
|
-- track responses ABOVE the amendment-track responses. m's ask
|
|
-- 2026-05-18 18:08: "the infringement parts (like Replik) should show
|
|
-- above the part for the revocation (Erwiderung Nichtigkeitswider-
|
|
-- klage)".
|
|
--
|
|
-- Three tracks coexist on upc.inf.cfi once the with_ccr / with_amend
|
|
-- flags are set. They share calendar dates because R.29 / R.30 / R.32
|
|
-- all key off the SoD or its descendants. The current sequence_orders
|
|
-- (post-mig 100) interleave them; the user sees Erwiderung-zur-CCR
|
|
-- before Replik even though Replik is the infringement-side response
|
|
-- to the same triggering event.
|
|
--
|
|
-- New sequence_order assignment (preserves the soc=0, prelim=5,
|
|
-- sod=10, ccr=11 anchors at the head; phase markers interim/oral/
|
|
-- decision/cost_app/appeal_spawn keep their existing 40/50/60/70/80
|
|
-- slots at the tail):
|
|
--
|
|
-- Old → New submission_code track date
|
|
-- --- --- --------------- ----- ----
|
|
-- 0 0 upc.inf.cfi.soc — D+0
|
|
-- 5 5 upc.inf.cfi.prelim — D+1mo
|
|
-- 10 10 upc.inf.cfi.sod infringement D+3mo
|
|
-- 11 20 upc.inf.cfi.ccr revocation D+3mo
|
|
-- 20 12 upc.inf.cfi.reply infringement D+5mo ← MOVED UP
|
|
-- 12 22 upc.inf.cfi.def_to_ccr revocation D+5mo
|
|
-- 13 30 upc.inf.cfi.app_to_amend amendment D+5mo
|
|
-- 30 14 upc.inf.cfi.rejoin infringement D+6mo ← MOVED UP
|
|
-- 22 24 upc.inf.cfi.reply_def_ccr revocation D+7mo
|
|
-- 21 32 upc.inf.cfi.def_to_amend amendment D+7mo
|
|
-- 32 26 upc.inf.cfi.rejoin_reply_ccr revocation D+8mo
|
|
-- 31 34 upc.inf.cfi.reply_def_amd amendment D+8mo
|
|
-- 33 36 upc.inf.cfi.rejoin_amd amendment D+9mo
|
|
-- 40 40 upc.inf.cfi.interim phase later
|
|
-- 50 50 upc.inf.cfi.oral phase later
|
|
-- 60 60 upc.inf.cfi.decision phase later
|
|
-- 70 70 upc.inf.cfi.cost_app phase later
|
|
-- 80 80 upc.inf.cfi.appeal_spawn phase later
|
|
--
|
|
-- Order within each tied-date group after the reshuffle:
|
|
-- D+3mo: sod(10), ccr(20) — SoD then its CCR
|
|
-- D+5mo: reply(12), def_to_ccr(22), app_to_amend(30) — inf → rev → amd
|
|
-- D+7mo: reply_def_ccr(24), def_to_amend(32) — rev → amd
|
|
-- D+8mo: rejoin_reply_ccr(26), reply_def_amd(34) — rev → amd
|
|
--
|
|
-- (no infringement-track rule at +7mo or +8mo so revocation leads
|
|
-- those dates; rejoin sits alone at +6mo so it has no peers to order
|
|
-- against.)
|
|
--
|
|
-- audit_reason set_config required at the top — the deadline_rules
|
|
-- audit trigger raises EXCEPTION 'audit reason required' on any
|
|
-- mutation without it (cf. mig 099 hotfix history).
|
|
--
|
|
-- Idempotency: every UPDATE is guarded by both the submission_code
|
|
-- AND the SOURCE sequence_order, so re-apply is a no-op once the new
|
|
-- numbers are in place.
|
|
|
|
SELECT set_config(
|
|
'paliad.audit_reason',
|
|
'mig 105: re-sequence upc.inf.cfi rules track-aware (infringement → revocation → amendment within tied-date groups; m''s 2026-05-18 ask, t-paliad-207 interactive session)',
|
|
true);
|
|
|
|
-- Two-phase swap to avoid sequence collisions during the UPDATE
|
|
-- (otherwise two rules can briefly share a sequence_order if Postgres
|
|
-- evaluates them in parallel). Phase 1: move every reshuffled rule to
|
|
-- a high temporary number (1000+). Phase 2: assign final numbers.
|
|
|
|
-- ─── Phase 1: park reshuffled rules at 1000+ ────────────────────────
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1011
|
|
WHERE submission_code = 'upc.inf.cfi.ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 11;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1012
|
|
WHERE submission_code = 'upc.inf.cfi.def_to_ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 12;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1013
|
|
WHERE submission_code = 'upc.inf.cfi.app_to_amend'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 13;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1020
|
|
WHERE submission_code = 'upc.inf.cfi.reply'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 20;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1021
|
|
WHERE submission_code = 'upc.inf.cfi.def_to_amend'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 21;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1022
|
|
WHERE submission_code = 'upc.inf.cfi.reply_def_ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 22;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1030
|
|
WHERE submission_code = 'upc.inf.cfi.rejoin'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 30;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1031
|
|
WHERE submission_code = 'upc.inf.cfi.reply_def_amd'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 31;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1032
|
|
WHERE submission_code = 'upc.inf.cfi.rejoin_reply_ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 32;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 1033
|
|
WHERE submission_code = 'upc.inf.cfi.rejoin_amd'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 33;
|
|
|
|
-- ─── Phase 2: assign final track-aware numbers ──────────────────────
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 12
|
|
WHERE submission_code = 'upc.inf.cfi.reply'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1020;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 14
|
|
WHERE submission_code = 'upc.inf.cfi.rejoin'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1030;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 20
|
|
WHERE submission_code = 'upc.inf.cfi.ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1011;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 22
|
|
WHERE submission_code = 'upc.inf.cfi.def_to_ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1012;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 24
|
|
WHERE submission_code = 'upc.inf.cfi.reply_def_ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1022;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 26
|
|
WHERE submission_code = 'upc.inf.cfi.rejoin_reply_ccr'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1032;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 30
|
|
WHERE submission_code = 'upc.inf.cfi.app_to_amend'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1013;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 32
|
|
WHERE submission_code = 'upc.inf.cfi.def_to_amend'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1021;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 34
|
|
WHERE submission_code = 'upc.inf.cfi.reply_def_amd'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1031;
|
|
|
|
UPDATE paliad.deadline_rules
|
|
SET sequence_order = 36
|
|
WHERE submission_code = 'upc.inf.cfi.rejoin_amd'
|
|
AND proceeding_type_id = 8
|
|
AND lifecycle_state = 'published'
|
|
AND sequence_order = 1033;
|