From c7c181b26b61281dac4489045732fd8768693c18 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mar 06 2020 08:35:52 +0000 Subject: use left outerjoin Signed-off-by: Karsten Hopp --- diff --git a/scripts/pagure_poc.py b/scripts/pagure_poc.py index 03f2939..f233ef3 100644 --- a/scripts/pagure_poc.py +++ b/scripts/pagure_poc.py @@ -56,34 +56,24 @@ def main(args): query = session.query( model.Project.namespace, model.Project.name, model.User.user, model.Project.id, + distgit.PagureBZOverride.epel_assignee, + distgit.PagureBZOverride.fedora_assignee ).filter( model.Project.user_id == model.User.id ).filter( model.Project.parent_id == None ).filter( model.Project.is_fork == False - ) - - or_query = session.query( - distgit.PagureBZOverride.project_id, - distgit.PagureBZOverride.epel_assignee, - distgit.PagureBZOverride.fedora_assignee - ) - - overrides = {} - for entry in or_query.all(): - or_project_id, epel_assignee, fedora_assignee = entry - overrides[or_project_id] = [epel_assignee, fedora_assignee] + ).outerjoin(distgit.PagureBZOverride) output = collections.defaultdict(dict) for entry in query.all(): - namespace, package, admin, project_id = entry - if project_id in overrides: - epel_assignee = overrides[project_id][0] or admin - fedora_assignee = overrides[project_id][1] or admin - else: - epel_assignee = admin - fedora_assignee = admin + ( namespace, package, + admin, project_id, + epel_assignee, fedora_assignee, + ) = entry + epel_assignee = epel_assignee or admin + fedora_assignee = fedora_assignee or admin output[namespace][package] = { 'admin': admin, 'epel': epel_assignee,