Some SQL targeted at PostgreSQL. This was intended as the database backend for user management in an online shop system.
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

-- 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()