От клиента это прекрасно работает с SELECT и возвращает логическое значение. Но, как функция, она не работает как plpgsl - PullRequest
0 голосов
/ 12 октября 2019
CREATE OR REPLACE FUNCTION public.verify_grp_pw()
 RETURNS boolean
 LANGUAGE plpgsql
AS $function$
DECLARE
    verify boolean;

BEGIN
    verify = (substring(( SELECT bristo_contacts_groups_pwd from bristo_contacts_groups
                 WHERE bristo_contacts_groups_group = ( SELECT 
                       bristo_contacts_session_grpname FROM
                       bristo_contacts_session WHERE
                       bristo_contacts_session_username = current_user)),1,64) = 
    encode(digest(substring(( SELECT bristo_contacts_groups_pwd from bristo_contacts_groups
                 WHERE bristo_contacts_groups_group = ( SELECT 
                       bristo_contacts_session_grpname FROM
                       bristo_contacts_session WHERE
                       bristo_contacts_session_username = current_user)),66,97) || 
                       ( SELECT 
                       bristo_contacts_session_grppwd FROM
                       bristo_contacts_session WHERE
                       bristo_contacts_session_username = current_user), 'sha256'),'hex'));
    RETURN verify;
END;
$function$
...