diff --git a/app/services/hash_twins.ts b/app/services/hash_twins.ts index 0254703..701d023 100644 --- a/app/services/hash_twins.ts +++ b/app/services/hash_twins.ts @@ -11,9 +11,11 @@ export async function twinNames( ): Promise> { const out = new Map() if (pairs.length === 0) return out + // hash16k typed as the column (char(32)): as text the join cast the column and scanned all of file_hashes + // instead of file_hashes_hash_size_release_idx, 4 s a call (LOG.md (138)). const { rows } = await trx.rawQuery( `SELECT DISTINCT ON (h.hash16k, h.size) h.hash16k, h.size, coalesce(r.inner_name, r.name) AS name - FROM jsonb_to_recordset(?::jsonb) AS v(hash16k text, size bigint) + FROM jsonb_to_recordset(?::jsonb) AS v(hash16k char(32), size bigint) JOIN file_hashes h ON h.hash16k = v.hash16k AND h.size = v.size JOIN releases r ON r.id = h.release_id AND (r.readable OR r.inner_name IS NOT NULL) WHERE NOT EXISTS (SELECT 1 FROM release_verdicts x WHERE x.release_id = r.id)