a tool for shared writing and social publishing

add recommend column to documents

+23
+23
supabase/migrations/20260210000000_add_recommend_count.sql
··· 1 + ALTER TABLE documents ADD COLUMN recommend_count integer NOT NULL DEFAULT 0; 2 + 3 + UPDATE documents d 4 + SET recommend_count = ( 5 + SELECT COUNT(*) FROM recommends_on_documents r WHERE r.document = d.uri 6 + ); 7 + 8 + CREATE OR REPLACE FUNCTION update_recommend_count() RETURNS trigger AS $$ 9 + BEGIN 10 + IF TG_OP = 'INSERT' THEN 11 + UPDATE documents SET recommend_count = recommend_count + 1 12 + WHERE uri = NEW.document; 13 + ELSIF TG_OP = 'DELETE' THEN 14 + UPDATE documents SET recommend_count = recommend_count - 1 15 + WHERE uri = OLD.document; 16 + END IF; 17 + RETURN NULL; 18 + END; 19 + $$ LANGUAGE plpgsql; 20 + 21 + CREATE TRIGGER trg_recommend_count 22 + AFTER INSERT OR DELETE ON recommends_on_documents 23 + FOR EACH ROW EXECUTE FUNCTION update_recommend_count();