sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:recursividad infinita detectada en la política para la relación

Bueno, no sé qué tan decente es, pero funciona para mí. Encontré una solución al crear una vista donde está la identificación del departamento del usuario actual y luego verificar si coincide:

CREATE VIEW curr_department AS
    (SELECT department_id as id FROM employee WHERE id =
        (SELECT employee_id FROM account WHERE login = current_user)
    );

CREATE POLICY locale_policy ON employee
    TO justuser, operator
    USING (department_id =
        (SELECT id FROM curr_department)
    );