This repository has been archived on 2024-08-23. You can view files and clone it, but cannot push or open issues or pull requests.
project/sql/insert_permission.sql

24 lines
589 B
SQL

WITH RECURSIVE folder_hierarchy AS (
-- Start with the given directory
SELECT
folder_id
FROM
folders
WHERE
folder_id = $1
UNION ALL
-- Recursively find all subdirectories
SELECT
f.folder_id
FROM
folders f
INNER JOIN
folder_hierarchy fh ON f.parent_folder_id = fh.folder_id
)
INSERT INTO permissions(user_id, folder_id, permission_type)
SELECT $2::integer as user_id, fh.folder_id::UUID as folder_id, $3
FROM folder_hierarchy fh
ON CONFLICT (user_id, folder_id) DO UPDATE
SET permission_type = $3