make notifications slightly more concise
This commit is contained in:
parent
10730bf7d5
commit
0f3db83ebc
@ -40,6 +40,23 @@ export default {
|
|||||||
"Item" LEFT JOIN "Vote" on "Vote"."itemId" = "Item".id AND "Vote"."userId" <> 622
|
"Item" LEFT JOIN "Vote" on "Vote"."itemId" = "Item".id AND "Vote"."userId" <> 622
|
||||||
AND "Vote".boost = false WHERE "Item"."userId" = 622 group by "Item".id,
|
AND "Vote".boost = false WHERE "Item"."userId" = 622 group by "Item".id,
|
||||||
date_trunc('hour', "Vote".created_at) order by created_at desc;
|
date_trunc('hour', "Vote".created_at) order by created_at desc;
|
||||||
|
|
||||||
|
island approach we used to take
|
||||||
|
(SELECT ${ITEM_SUBQUERY_FIELDS}, max(subquery.voted_at) as "sortTime",
|
||||||
|
sum(subquery.sats) as "earnedSats", false as mention
|
||||||
|
FROM
|
||||||
|
(SELECT ${ITEM_FIELDS}, "ItemAct".created_at as voted_at, "ItemAct".sats,
|
||||||
|
ROW_NUMBER() OVER(ORDER BY "ItemAct".created_at) -
|
||||||
|
ROW_NUMBER() OVER(PARTITION BY "Item".id ORDER BY "ItemAct".created_at) as island
|
||||||
|
FROM "ItemAct"
|
||||||
|
JOIN "Item" on "ItemAct"."itemId" = "Item".id
|
||||||
|
WHERE "ItemAct"."userId" <> $1
|
||||||
|
AND "ItemAct".created_at <= $2
|
||||||
|
AND "ItemAct".act <> 'BOOST'
|
||||||
|
AND "Item"."userId" = $1) subquery
|
||||||
|
GROUP BY ${ITEM_SUBQUERY_FIELDS}, subquery.island
|
||||||
|
ORDER BY max(subquery.voted_at) desc
|
||||||
|
LIMIT ${LIMIT}+$3)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// HACK to make notifications faster, we only return a limited sub set of the unioned
|
// HACK to make notifications faster, we only return a limited sub set of the unioned
|
||||||
@ -55,20 +72,16 @@ export default {
|
|||||||
ORDER BY "Item".created_at desc
|
ORDER BY "Item".created_at desc
|
||||||
LIMIT ${LIMIT}+$3)
|
LIMIT ${LIMIT}+$3)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
(SELECT ${ITEM_SUBQUERY_FIELDS}, max(subquery.voted_at) as "sortTime",
|
(SELECT ${ITEM_FIELDS}, max("ItemAct".created_at) as "sortTime",
|
||||||
sum(subquery.sats) as "earnedSats", false as mention
|
sum("ItemAct".sats) as "earnedSats", false as mention
|
||||||
FROM
|
FROM "Item"
|
||||||
(SELECT ${ITEM_FIELDS}, "ItemAct".created_at as voted_at, "ItemAct".sats,
|
JOIN "ItemAct" on "ItemAct"."itemId" = "Item".id
|
||||||
ROW_NUMBER() OVER(ORDER BY "ItemAct".created_at) -
|
WHERE "ItemAct"."userId" <> $1
|
||||||
ROW_NUMBER() OVER(PARTITION BY "Item".id ORDER BY "ItemAct".created_at) as island
|
AND "ItemAct".created_at <= $2
|
||||||
FROM "ItemAct"
|
AND "ItemAct".act <> 'BOOST'
|
||||||
JOIN "Item" on "ItemAct"."itemId" = "Item".id
|
AND "Item"."userId" = $1
|
||||||
WHERE "ItemAct"."userId" <> $1
|
GROUP BY ${ITEM_GROUP_FIELDS}
|
||||||
AND "ItemAct".created_at <= $2
|
ORDER BY max("ItemAct".created_at) desc
|
||||||
AND "ItemAct".act <> 'BOOST'
|
|
||||||
AND "Item"."userId" = $1) subquery
|
|
||||||
GROUP BY ${ITEM_SUBQUERY_FIELDS}, subquery.island
|
|
||||||
ORDER BY max(subquery.voted_at) desc
|
|
||||||
LIMIT ${LIMIT}+$3)
|
LIMIT ${LIMIT}+$3)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
(SELECT ${ITEM_FIELDS}, "Mention".created_at as "sortTime", NULL as "earnedSats",
|
(SELECT ${ITEM_FIELDS}, "Mention".created_at as "sortTime", NULL as "earnedSats",
|
||||||
@ -109,9 +122,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const ITEM_SUBQUERY_FIELDS =
|
// const ITEM_SUBQUERY_FIELDS =
|
||||||
`subquery.id, subquery."createdAt", subquery."updatedAt", subquery.title, subquery.text,
|
// `subquery.id, subquery."createdAt", subquery."updatedAt", subquery.title, subquery.text,
|
||||||
subquery.url, subquery."userId", subquery."parentId", subquery.path`
|
// subquery.url, subquery."userId", subquery."parentId", subquery.path`
|
||||||
|
|
||||||
|
const ITEM_GROUP_FIELDS =
|
||||||
|
`"Item".id, "Item".created_at, "Item".updated_at, "Item".title,
|
||||||
|
"Item".text, "Item".url, "Item"."userId", "Item"."parentId", ltree2text("Item"."path")`
|
||||||
|
|
||||||
const ITEM_FIELDS =
|
const ITEM_FIELDS =
|
||||||
`"Item".id, "Item".created_at as "createdAt", "Item".updated_at as "updatedAt", "Item".title,
|
`"Item".id, "Item".created_at as "createdAt", "Item".updated_at as "updatedAt", "Item".title,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user