3 UPDATE artifact_counts_agg
4 SET count=subquery.count,
5 open_count=subquery.open_count
6 FROM (SELECT group_artifact_id, COUNT(group_artifact_id) AS count,
7 SUM(CASE WHEN status_id=1 THEN 1 ELSE 0 END) AS open_count
9 GROUP BY group_artifact_id) AS subquery
10 WHERE artifact_counts_agg.group_artifact_id=subquery.group_artifact_id;
12 -- Fix insert rule (only increase open count if open)
14 DROP RULE artifact_insert_agg ON artifact;
16 CREATE OR REPLACE RULE artifact_insert_agg AS
17 ON INSERT TO artifact DO UPDATE artifact_counts_agg SET count = artifact_counts_agg.count + 1, open_count =
19 WHEN new.status_id = 1 THEN artifact_counts_agg.open_count + 1
20 ELSE artifact_counts_agg.open_count
22 WHERE artifact_counts_agg.group_artifact_id = new.group_artifact_id;