diff --git a/backend/src/database/migrations/004_create_einsaetze.sql b/backend/src/database/migrations/004_create_einsaetze.sql index 29c40e4..3e9daa1 100644 --- a/backend/src/database/migrations/004_create_einsaetze.sql +++ b/backend/src/database/migrations/004_create_einsaetze.sql @@ -103,8 +103,9 @@ CREATE INDEX IF NOT EXISTS idx_einsaetze_alarm_time ON einsaetze(alarm_time CREATE INDEX IF NOT EXISTS idx_einsaetze_einsatz_art ON einsaetze(einsatz_art); CREATE INDEX IF NOT EXISTS idx_einsaetze_status ON einsaetze(status); CREATE INDEX IF NOT EXISTS idx_einsaetze_einsatzleiter ON einsaetze(einsatzleiter_id); -CREATE INDEX IF NOT EXISTS idx_einsaetze_alarm_year ON einsaetze(EXTRACT(YEAR FROM alarm_time)); -CREATE INDEX IF NOT EXISTS idx_einsaetze_alarm_art_year ON einsaetze(einsatz_art, EXTRACT(YEAR FROM alarm_time)); +-- Note: EXTRACT(YEAR FROM timestamptz) is STABLE (timezone-dependent), not IMMUTABLE, +-- so it cannot be used in expression indexes. Use alarm_time range scans for year filtering. +CREATE INDEX IF NOT EXISTS idx_einsaetze_alarm_art ON einsaetze(einsatz_art, alarm_time DESC); -- Auto-update updated_at CREATE TRIGGER update_einsaetze_updated_at