я исправил, это проблема выхода из одинарной кавычки
CREATE OR replace FUNCTION lax ()
RETURNS setof record AS $$
DECLARE rs record;
_planunitcode INT;
_DF VARCHAR(25);
str TEXT;
BEGIN
_planunitcode: = 1;
_DF : = 'role.planner';
str : = 'select role from userplanunit where role ='''||_DF||'''';
FOR
rs IN
EXECUTE str LOOP
RETURN NEXT rs;
END
LOOP;
RETURN;END $$
LANGUAGE 'plpgsql';