You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.0 KiB
33 lines
1.0 KiB
-- Trigger Funktionen zu Rechten --
|
|
-- [
|
|
create function create_valid_rechte_mask()
|
|
returns TRIGGER as '
|
|
DECLARE
|
|
err_msg text;
|
|
new_len int4;
|
|
old_len int4;
|
|
dummy RECORD;
|
|
sel text;
|
|
BEGIN
|
|
IF TG_OP <> ''UPDATE'' AND TG_OP <> ''INSERT'' THEN
|
|
err_msg := TG_NAME || '': called for wrong action '' || TG_OP;
|
|
RAISE EXCEPTION ''%'', err_msg;
|
|
END IF;
|
|
|
|
new_len := bit_length(NEW.maske);
|
|
old_len := fibu.konto_typ_min_len();
|
|
|
|
IF new_len < old_len THEN
|
|
NEW.maske := bit_set_len(NEW.maske, old_len);
|
|
END IF;
|
|
|
|
IF old_len < new_len THEN
|
|
EXECUTE ''update fibu.konten_typen set konto_typ=konto_typ'' ||
|
|
''::BIT('' || new_len || '')>>'' || new_len-old_len;
|
|
END IF;
|
|
|
|
RETURN NEW;
|
|
END;
|
|
' language 'plpgsql';
|
|
|
|
-- create function on_ref_count_null_del_konto()
|