CREATE OR REPLACE FUNCTION inttobool(num integer, val boolean)
RETURNS boolean
LANGUAGE plpgsql
AS $function$
BEGIN
if num=0 and not val then
return true;
elsif num<>0 and val then
return true;
else return false;
end if;
END;
$function$
;
CREATE OR REPLACE FUNCTION inttobool(val boolean, num integer)
RETURNS boolean
LANGUAGE plpgsql
AS $function$
BEGIN
return inttobool(num,val);
END;
$function$
;
CREATE OPERATOR = (
FUNCTION = inttobool,
LEFTARG = boolean,
RIGHTARG = integer,
COMMUTATOR = OPERATOR(=),
NEGATOR = OPERATOR(<>)
);
//следом нашла этот оператор в pg_operator и взяла его oid
delete from pg_operator where oid = нужный oid;
//следом удаляю функцию
drop function inttobool(val boolean, num integer) cascade;
ЗАМЕЧАНИЕ: удаление распространяется на ещё 3 объекта
ПОДРОБНОСТИ: удаление распространяется на объект оператор 16485
удаление распространяется на объект оператор 300641
удаление распространяется на объект оператор 300642
ОШИБКА: cache lookup failed for operator 300642