Yes, but the documentation states that EXECUTE permission for the function is required to even CREATE the operator.
This what the doc says: > To be able to create an operator, you must have USAGE privilege on the argument types and the return type, as well as EXECUTE privilege on the underlying function. If a commutator or negator operator is specified, you must own these operators. Am I missing something obvious here? -- Robins Tharakan On 22 May 2013 07:12, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote: > Robins Tharakan escribió: > > Further, I seem to have a similar problem with the EXECUTE check > > requirement as well. > > Sample SQL given below. > > > > BEGIN TRANSACTION; > > CREATE ROLE rol_op3; > > CREATE TYPE type_op3 AS ENUM ('new', 'open', 'closed'); > > CREATE FUNCTION fn_op3(type_op3, type_op3) > > RETURNS type_op3 AS $$ > > SELECT NULL::type_op3; > > $$ LANGUAGE sql IMMUTABLE; > > REVOKE EXECUTE ON FUNCTION fn_op3(type_op3, type_op3) FROM rol_op3; > > Doesn't PUBLIC still have EXECUTE permissions on this function? > > -- > Álvaro Herrera http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Training & Services >