-- hire_employee schreibt Notfallkontakt und Antriebsart mit. -- -- Die Spalten gibt es seit 20260811110000, aber die Einstellung zählt ihre -- Spalten namentlich auf — was dort fehlt, wird beim Anlegen verworfen. Der -- Assistent hätte die Felder erhoben und stillschweigend weggeworfen; genau -- der Fall, der heute schon einmal mit der E-Mail passiert ist. do $$ declare v_def text; v_neu text; begin select pg_get_functiondef(p.oid) into v_def from pg_proc p join pg_namespace n on n.oid = p.pronamespace where n.nspname = 'public' and p.proname = 'hire_employee' limit 1; v_neu := regexp_replace( v_def, '(is_betriebsrat,\s*has_dienstwagen,\s*is_laterale_fuehrung,\s*is_c_level\s*\))', 'is_betriebsrat, has_dienstwagen, is_laterale_fuehrung, is_c_level,' || chr(10) || ' dienstwagen_art, emergency_contact_name, emergency_contact_phone, emergency_contact_relation' || chr(10) || ' )', 'g' ); if v_neu = v_def then raise exception 'Die Spaltenliste liess sich nicht ergänzen.'; end if; v_def := v_neu; -- Die Werteliste endet mit is_c_level; davor steht der Abschluss der -- values-Klammer. v_neu := regexp_replace( v_def, '(coalesce\(\(payload->>''is_c_level''\)::boolean,\s*false\))', E'\\1,\n' -- Antrieb nur, wenn es einen Dienstwagen gibt — sonst weist der CHECK -- die Zeile ab. Ohne Angabe gilt Verbrenner, wie im Bestand. || ' case when coalesce((payload->>''has_dienstwagen'')::boolean, false)' || ' then coalesce(nullif(payload->>''dienstwagen_art'', ''''), ''Verbrenner'') else null end,' || chr(10) || ' nullif(payload->>''emergency_contact_name'', ''''),' || chr(10) || ' nullif(payload->>''emergency_contact_phone'', ''''),' || chr(10) || ' nullif(payload->>''emergency_contact_relation'', '''')', 'g' ); if v_neu = v_def then raise exception 'Die Werteliste liess sich nicht ergänzen.'; end if; execute v_neu; end; $$; do $$ declare v_def text; begin select pg_get_functiondef(p.oid) into v_def from pg_proc p join pg_namespace n on n.oid = p.pronamespace where n.nspname = 'public' and p.proname = 'hire_employee' limit 1; if v_def not like '%emergency_contact_relation%' then raise exception 'hire_employee() schreibt den Notfallkontakt nicht.'; end if; if v_def not like '%dienstwagen_art%' then raise exception 'hire_employee() schreibt die Antriebsart nicht.'; end if; end; $$;