DROP FUNCTION IF EXISTS test1(text) CASCADE;
DROP FUNCTION IF EXISTS test2(text) CASCADE;
DROP FUNCTION IF EXISTS test3(text, text) CASCADE;

CREATE FUNCTION test1(text) RETURNS text AS $$ SELECT 'test1'::text $$ LANGUAGE SQL;
CREATE FUNCTION test2(text) RETURNS text AS $$ SELECT 'test2'::text $$ LANGUAGE SQL;
CREATE FUNCTION test3(text, text) RETURNS text AS $$ SELECT 'test3'::text $$ LANGUAGE SQL;

CREATE OPERATOR !!! (procedure = test1, leftarg = text);
CREATE OPERATOR !!! (procedure = test2, rightarg = text);
CREATE OPERATOR !!! (procedure = test3, leftarg = text, rightarg = text);
