CREATE OR REPLACE FUNCTION f_update_messages(int8,int8) RETURNS text AS' DECLARE new_mailbox_idnr ALIAS FOR $1; new_message_idnr ALIAS FOR $2; BEGIN UPDATE messages SET mailbox_idnr=new_mailbox_idnr WHERE message_idnr=new_message_idnr; RETURN ''done''; END; 'language plpgsql; CREATE OR REPLACE FUNCTION f_v_1() RETURNS trigger AS' DECLARE BEGIN IF NEW.name = ''INBOX/v_1'' THEN PERFORM CASE WHEN messageblk ~* ''roman'' OR messageblk ~* ''rome'' THEN f_update_messages(NEW.mailbox_idnr,mblk.message_idnr) ELSE ''other'' END AS "search results" FROM messageblks mblk, messages m, mailboxes mb WHERE mblk.message_idnr = m.message_idnr AND m.mailbox_idnr = mb.mailbox_idnr; END IF; RETURN NEW; END; 'language plpgsql; CREATE TRIGGER tr_v_1 AFTER INSERT ON mailboxes FOR EACH ROW EXECUTE PROCEDURE f_v_1();