faster not tags

This commit is contained in:
Jack Robison 2020-04-16 11:04:24 -04:00
parent cb9a30f285
commit 7ffdfd12f8
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2

View file

@ -604,11 +604,19 @@ def _apply_constraints_for_array_attributes(constraints, attr, cleaner, for_coun
f':$not_{attr}{i}' for i in range(len(not_items)) f':$not_{attr}{i}' for i in range(len(not_items))
) )
if for_count: if for_count:
constraints[f'#_not_{attr}'] = f""" if attr == 'tag':
{CLAIM_HASH_OR_REPOST_HASH_SQL} NOT IN ( constraints[f'#_not_{attr}'] = f"""
SELECT claim_hash FROM {attr} WHERE {attr} IN ({values}) (claim.claim_type != {CLAIM_TYPES['repost']}
) AND claim.claim_hash NOT IN (SELECT claim_hash FROM tag WHERE tag IN ({values}))) AND
""" (claim.claim_type == {CLAIM_TYPES['repost']} AND
claim.reposted_claim_hash NOT IN (SELECT claim_hash FROM tag WHERE tag IN ({values})))
"""
else:
constraints[f'#_not_{attr}'] = f"""
{CLAIM_HASH_OR_REPOST_HASH_SQL} NOT IN (
SELECT claim_hash FROM {attr} WHERE {attr} IN ({values})
)
"""
else: else:
constraints[f'#_not_{attr}'] = f""" constraints[f'#_not_{attr}'] = f"""
NOT EXISTS( NOT EXISTS(