1

任何人都知道如何在 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"

任何人都知道问题是什么?任何帮助表示赞赏。

4

1 回答 1

1

该函数应该返回INTEGER,你写的返回BOOLEAN

CREATE OR REPLACE FUNCTION algo.fun_temp(IN exp BOOLEAN)
RETURNS INTEGER AS $$
BEGIN
    RETURN (NOT exp)::INTEGER;
END;
$$ LANGUAGE plpgsql;

然后将架构添加algosearch_path

SET search_path = public, algo;
于 2012-06-19T21:17:56.947 回答