有人知道如何在postgresql中调用自定义运算符吗?
我有以下接线员:
CREATE OR REPLACE FUNCTION algo.fun_temp(IN exp BOOLEAN)
RETURNS INTEGER AS $$
BEGIN
RETURN NOT exp;
END;
$$ LANGUAGE plpgsql;
CREATE OPERATOR algo.~
(
PROCEDURE = algo.fun_temp,
RIGHTARG = BOOLEAN
);
当我试图用
SELECT algo.~ TRUE
呼叫这个接线员时,客户抱怨"ERROR: syntax error at or near "~"
LINE 1: SELECT algo.~ TRUE"
有人知道问题出在哪里吗?如有任何帮助,我们将不胜感激。
程
最佳答案
函数应该返回INTEGER
,您所写的返回BOOLEAN
:
CREATE OR REPLACE FUNCTION algo.fun_temp(IN exp BOOLEAN)
RETURNS INTEGER AS $$
BEGIN
RETURN (NOT exp)::INTEGER;
END;
$$ LANGUAGE plpgsql;
然后将模式添加到
algo
:SET search_path = public, algo;