penpot/backend/src/app/migrations/sql/0044-add-storage-refcount.sql
2021-02-18 09:35:37 +01:00

24 lines
598 B
PL/PgSQL

ALTER TABLE storage_object
ADD COLUMN touched_at timestamptz NULL;
CREATE INDEX storage_object__id_touched_at__idx
ON storage_object (touched_at, id)
WHERE touched_at IS NOT NULL;
CREATE OR REPLACE FUNCTION on_delete_file_media_object()
RETURNS TRIGGER AS $func$
BEGIN
IF OLD.thumbnail_id IS NOT NULL THEN
UPDATE storage_object
SET touched_at = now()
WHERE id in (OLD.thumbnail_id, OLD.media_id);
ELSE
UPDATE storage_object
SET touched_at = now()
WHERE id = OLD.media_id;
END IF;
RETURN OLD;
END;
$func$ LANGUAGE plpgsql;