/
githubmirror
/
tldraw
Обзор
Документация
Войти
/
githubmirror
/
tldraw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
apps/dotcom/zero-cache/migrations/012_prevent_deadlocks.sql
24 строки
777 B
Mitja Bezenšek
Improve triggers and hopefully fix an issue with deadlocks (#5501)
26 фев 2025, 17:30
Не верифицирован
26 фев 2025, 17:30
ce9ba0a
Код
Авторство
О чём код?
CREATE OR REPLACE FUNCTION update_file_state_on_file_change() RETURNS TRIGGER AS $$ BEGIN IF OLD."ownerId" IS DISTINCT FROM NEW."ownerId" THEN UPDATE file_state SET "isFileOwner" = (file_state."userId" = NEW."ownerId") WHERE file_state."fileId" = NEW.id; END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION update_is_file_owner() RETURNS TRIGGER AS $$ BEGIN IF TG_OP = 'INSERT' THEN NEW."isFileOwner" := (NEW."userId" = (SELECT "ownerId" FROM file WHERE file.id = NEW."fileId")); ELSIF TG_OP = 'UPDATE' THEN IF NEW."userId" IS DISTINCT FROM OLD."userId" THEN NEW."isFileOwner" := (NEW."userId" = (SELECT "ownerId" FROM file WHERE file.id = NEW."fileId")); END IF; END IF; RETURN NEW; END; $$ LANGUAGE plpgsql;