mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-04-25 14:09:15 -05:00
[server][core][sql] Manual TrashCompact query
This commit is contained in:
@@ -1,40 +1,3 @@
|
||||
-- name: SoftDelete :exec
|
||||
WITH RECURSIVE nodes(id, parent) AS (
|
||||
SELECT r.id, r.parent
|
||||
FROM resources r
|
||||
WHERE
|
||||
CASE @preserve_root::boolean
|
||||
WHEN TRUE THEN r.parent = @id::uuid
|
||||
ELSE r.id = @id::uuid
|
||||
END
|
||||
UNION ALL
|
||||
SELECT r.id, r.parent
|
||||
FROM resources r JOIN nodes n on r.parent = n.id
|
||||
WHERE deleted IS NULL
|
||||
)
|
||||
UPDATE resources
|
||||
SET modified = NOW(), deleted = NOW()
|
||||
FROM nodes
|
||||
WHERE nodes.id = resources.id;
|
||||
|
||||
-- name: HardDelete :many
|
||||
WITH RECURSIVE nodes(id, parent) AS (
|
||||
SELECT r.id, r.parent
|
||||
FROM resources r
|
||||
WHERE
|
||||
CASE @preserve_root::boolean
|
||||
WHEN TRUE THEN r.parent = @id::uuid
|
||||
ELSE r.id = @id::uuid
|
||||
END
|
||||
UNION ALL
|
||||
SELECT r.id, r.parent
|
||||
FROM resources r JOIN nodes n on r.parent = n.id
|
||||
WHERE deleted IS NULL
|
||||
)
|
||||
DELETE FROM resources
|
||||
WHERE id IN (SELECT id FROM nodes)
|
||||
RETURNING id, dir;
|
||||
|
||||
-- name: TrashCompact :many
|
||||
DELETE FROM resources WHERE deleted < @t::TIMESTAMP RETURNING id, dir;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user