PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL - ricorsione infinita rilevata nella policy per la relazione

Beh, non so quanto sia decente, ma funziona per me. Ho trovato una soluzione nel creare una vista dove è l'id del dipartimento dell'utente_corrente e quindi controllare se corrisponde:

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)
    );