在 Postgresql 中创建运算符



>有人知道如何在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添加到search_path

SET search_path = public, algo;

最新更新