Since postfix 3.2 stored procedures are supported.
Sample stored procs:
CREATE
definer = root@localhost procedure isvdomain(IN arg varchar(255))
BEGIN
SELECT GROUP_CONCAT(DISTINCT `domain` SEPARATOR ' ') FROM `alias` WHERE domain = arg AND domain != 'tsos.ethz.ch';
END;
CREATE
definer = root@localhost procedure lookup(IN username varchar(255), IN domainname varchar(255))
BEGIN
IF EXISTS(SELECT * FROM `alias` WHERE `name` = username AND `domain` = domainname) THEN
SELECT GROUP_CONCAT(CONCAT_WS('@', `destname`, `destdomain`) SEPARATOR ' ')
FROM `alias`
WHERE `name` = username
AND `domain` = domainname;
ELSE
SELECT GROUP_CONCAT(CONCAT_WS('@', username, `destdomain`) SEPARATOR ' ')
FROM `alias`
where `name` = '*'
AND `domain` = domainname;
END IF;
END;
Since postfix 3.2 stored procedures are supported.
Sample stored procs: