убрать пустой рекордсет

Kirill

Новичок
убрать пустой рекордсет

Есть процедура для аутентификации юзеров:
[pre]
CREATE OR REPLACE FUNCTION authentificate("login" character varying, "password" character varying)
RETURNS userinfo AS
$BODY$
SELECT
u.*,
role_system_name
FROM
users u
INNER JOIN acl_roles r USING (role_id)
WHERE
user_login = $1
AND user_password = $2
AND user_status = 'active'
LIMIT 1
$BODY$
LANGUAGE 'sql' VOLATILE
COST 100;
[/pre]

Вызываю так:
SELECT user_id, user_login, role_system_name FROM authentificate('login', 'password')

Если совпадений в базе не найдено - возвращает пустой рекордсет (1 row), как сделать так чтобы возвращалось 0 строк если совпадений не найдено?
 

YRusinov

Филин Ух
Для этого надо написать в теле функции query=\'<твой запрос>\' и далее for r in execute query loop return next r; end loop;
 
Сверху