2012-06-19 4 views
1

Кто-нибудь знает, как вызвать самоопределяемый оператор в 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" 

Любой знает, в чем проблема? Любая помощь приветствуется.

чэн

ответ

1

Функция должна возвращать 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; 
Смежные вопросы