postgres/postgres.forwarders_in.sql
2017-02-21 02:33:47 +01:00

37 lines
1.2 KiB
PL/PgSQL

CREATE LANGUAGE plpgsql;
DROP FUNCTION IF EXISTS udf_forwarders_in();
DROP FUNCTION IF EXISTS udf_forwarders_in(TEXT,TEXT,TEXT,CHAR,BOOLEAN);
CREATE FUNCTION udf_forwarders_in(forewarders_str TEXT,
email_str TEXT,
vacation_domain TEXT ,
list_seperator CHAR ,
vacation_enable BOOLEAN)
RETURNS TEXT AS $$
DECLARE
return_str text;
local_email_part TEXT;
domain_email_part TEXT;
BEGIN
return_str = email_str;
IF vacation_enable THEN
local_email_part = substring(email_str, 1, position('@' in email_str) - 1);
domain_email_part = substring(email_str, position('@' in email_str) + 1 );
return_str = return_str || list_seperator || local_email_part || '#' || domain_email_part || '@' || vacation_domain;
END IF;
IF char_length(forewarders_str) > 7 THEN
return_str = return_str || list_seperator || forewarders_str;
END IF;
RETURN return_str;
END;
$$ LANGUAGE plpgsql;
SELECT udf_forwarders_in('ckubu@oopen.de', 'admin@initiativenserver.de','autoreply.initiativenserver.de',',',TRUE);