pull/4333/head
Dull Bananas 9 months ago
parent 7d8720ce10
commit 7162c13fac

@ -146,30 +146,32 @@ BEGIN
SELECT
(thing_like).thing_id,
sum(count_diff) FILTER (WHERE (thing_like).score = 1) AS upvotes,
sum(count_diff) FILTER (WHERE (thing_like).score != 1) AS downvotes
FROM
r.combine_transition_tables () AS (count_diff bigint, thing_like thing_like)
GROUP BY
(thing_like).thing_id) AS diff
WHERE
a.thing_id = diff.thing_id
RETURNING
creator_id_from_thing_aggregates (a.*) AS creator_id,
diff.upvotes - diff.downvotes AS score)
UPDATE
person_aggregates AS a
SET
thing_score = a.thing_score + diff.score
FROM (
SELECT
creator_id,
sum(score) AS score
sum(count_diff) FILTER (WHERE (thing_like).score != 1) AS downvotes
FROM
target_diff
r.combine_transition_tables ()
AS (count_diff bigint,
thing_like thing_like)
GROUP BY
creator_id) AS diff
WHERE
a.person_id = diff.creator_id;
(thing_like).thing_id) AS diff
WHERE
a.thing_id = diff.thing_id
RETURNING
creator_id_from_thing_aggregates (a.*) AS creator_id,
diff.upvotes - diff.downvotes AS score)
UPDATE
person_aggregates AS a
SET
thing_score = a.thing_score + diff.score
FROM (
SELECT
creator_id,
sum(score) AS score
FROM
target_diff
GROUP BY
creator_id) AS diff
WHERE
a.person_id = diff.creator_id;
RETURN NULL;
END $$;
CALL r.create_triggers ('thing_like', 'thing_aggregates_from_like');
@ -196,14 +198,15 @@ BEGIN
(comment).local,
sum(count_diff) AS comments
FROM
r.combine_transition_tables () AS (count_diff bigint, comment comment)
r.combine_transition_tables ()
AS (count_diff bigint,
comment comment)
WHERE
NOT ((comment).deleted
OR (comment).removed)
NOT ((comment).deleted OR (comment).removed)
GROUP BY
GROUPING SETS ((comment)post_id,
(comment).creator_id,
(comment).local)
GROUPING SETS ((comment).post_id,
(comment).creator_id,
(comment).local)
),
unused_person_aggregates_update_result AS (
UPDATE
@ -298,14 +301,15 @@ BEGIN
(post).local,
sum(count_diff) AS posts
FROM
r.combine_transition_tables () AS (count_diff bigint, post post)
r.combine_transition_tables ()
AS (count_diff bigint,
post post)
WHERE
NOT ((post).deleted
OR (post).removed)
NOT ((post).deleted OR (post).removed)
GROUP BY
GROUPING SETS ((post).community_id,
(post).creator_id,
(post).local)
(post).creator_id,
(post).local)
),
unused_person_aggregates_update_result AS (
UPDATE
@ -353,11 +357,9 @@ BEGIN
SELECT
sum(count_diff) AS communities
FROM
r.combine_transition_tables () AS (count_diff bigint, community community)
WHERE
(community).local
AND NOT ((community).deleted
OR (community).removed)) AS diff;
r.combine_transition_tables ()
AS (count_diff bigint, community community)
WHERE (community).local AND NOT ((community).deleted OR (community).removed)) AS diff;
RETURN NULL;
END
$$;
@ -377,9 +379,9 @@ BEGIN
SELECT
sum(count_diff) AS users
FROM
r.combine_transition_tables () AS (count_diff bigint, person person)
WHERE
(person).local) AS diff;
r.combine_transition_tables ()
AS (count_diff bigint, person person)
WHERE (person).local) AS diff;
RETURN NULL;
END
$$;
@ -448,15 +450,16 @@ BEGIN
(community_follower).community_id,
sum(count_diff) AS subscribers
FROM
r.combine_transition_tables () AS (count_diff bigint, community_follower community_follower)
r.combine_transition_tables ()
AS (count_diff bigint, community_follower community_follower)
WHERE (
SELECT
local
FROM
community
WHERE
community.id = (community_follower).community_id
LIMIT 1)
SELECT
local
FROM
community
WHERE
community.id = (community_follower).community_id
LIMIT 1)
GROUP BY
(community_follower).community_id) AS diff
WHERE

Loading…
Cancel
Save