У меня есть оператор выбора, который генерируется динамически на основе предоставленного параметра.Проблема в том, что postgresql всегда говорит:
argument of WHERE must be type boolean, not type character varying
независимо от того, какой это параметр.Я что-то пропустил?
CREATE OR REPLACE FUNCTION getuid(name character varying) RETURNS integer AS $$
DECLARE
statement varchar;
uid integer;
BEGIN
IF ($1 = '') THEN
statement := 'TRUE';
statement := CAST(statement AS BOOLEAN);
ELSE
statement := 'users.keywords ILIKE''' || '%' || $1 || '%''';
END IF;
SELECT INTO uid id FROM users WHERE "statement";
RETURN uid;
END;
$$ LANGUAGE plpgsql