remove the inner join with highlights table in the sql of update-label job

This commit is contained in:
Hongbo Wu
2024-02-01 13:09:50 +08:00
parent a7371fe7a1
commit e13c418389

View File

@ -17,16 +17,15 @@ export const updateLabels = async (data: UpdateLabelsData) => {
return authTrx(
async (tx) =>
tx.query(
`WITH labels_agg AS (
SELECT array_agg(DISTINCT l.name) AS names_agg
FROM omnivore.labels l
INNER JOIN omnivore.entity_labels el ON el.label_id = l.id
LEFT JOIN omnivore.highlight h ON h.id = el.highlight_id
WHERE el.library_item_id = $1 OR h.library_item_id = $1
)
UPDATE omnivore.library_item li
SET label_names = COALESCE((SELECT names_agg FROM labels_agg), ARRAY[]::TEXT[])
WHERE li.id = $1`,
`UPDATE omnivore.library_item
SET label_names = COALESCE((
SELECT array_agg(DISTINCT l.name)
FROM omnivore.labels l
INNER JOIN omnivore.entity_labels el
ON el.label_id = l.id
AND el.library_item_id = $1
), ARRAY[]::TEXT[])
WHERE id = $1`,
[data.libraryItemId]
),
undefined,
@ -38,14 +37,13 @@ export const updateHighlight = async (data: UpdateHighlightData) => {
return authTrx(
async (tx) =>
tx.query(
`WITH highlight_agg AS (
SELECT array_agg(COALESCE(annotation, '')) AS annotation_agg
FROM omnivore.highlight
WHERE library_item_id = $1
)
UPDATE omnivore.library_item
SET highlight_annotations = COALESCE((SELECT annotation_agg FROM highlight_agg), ARRAY[]::TEXT[])
WHERE id = $1`,
`UPDATE omnivore.library_item
SET highlight_annotations = COALESCE((
SELECT array_agg(COALESCE(annotation, ''))
FROM omnivore.highlight
WHERE library_item_id = $1
), ARRAY[]::TEXT[])
WHERE id = $1`,
[data.libraryItemId]
),
undefined,