From 3abe01923e9538d0dc685bc1087c870e3e974747 Mon Sep 17 00:00:00 2001 From: "Victor Piryns (pivi)" Date: Fri, 17 Nov 2023 17:50:04 +0100 Subject: [PATCH] [REM] base: removing slow partner cycle search dead code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: Since 54857ec409d2cd2a565ad73b069a8641046aedac , the results of the expensive recursive CTE on `res.partner` were never used. So the query doesn't do anything at all, besides slowing down the whole process for minutes on databases with a large volume of `res.partner` entries. Fix: Removing the dead code Reference: task-3601394 closes odoo/odoo#142914 X-original-commit: 29223533f625d579e424bdc133d0cfc472946b6b Signed-off-by: Rémy Voet (ryv) Signed-off-by: Piryns Victor (pivi) --- odoo/addons/base/wizard/base_partner_merge.py | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/odoo/addons/base/wizard/base_partner_merge.py b/odoo/addons/base/wizard/base_partner_merge.py index 058192184b5..3dab4beaf4f 100644 --- a/odoo/addons/base/wizard/base_partner_merge.py +++ b/odoo/addons/base/wizard/base_partner_merge.py @@ -154,22 +154,6 @@ class MergePartnerAutomatic(models.TransientModel): with mute_logger('odoo.sql_db'), self._cr.savepoint(): query = 'UPDATE "%(table)s" SET "%(column)s" = %%s WHERE "%(column)s" IN %%s' % query_dic self._cr.execute(query, (dst_partner.id, tuple(src_partners.ids),)) - - # handle the recursivity with parent relation - if column == Partner._parent_name and table == 'res_partner': - query = """ - WITH RECURSIVE cycle(id, parent_id) AS ( - SELECT id, parent_id FROM res_partner - UNION - SELECT cycle.id, res_partner.parent_id - FROM res_partner, cycle - WHERE res_partner.id = cycle.parent_id AND - cycle.id != cycle.parent_id - ) - SELECT id FROM cycle WHERE id = parent_id AND id = %s - """ - self._cr.execute(query, (dst_partner.id,)) - # NOTE JEM : shouldn't we fetch the data ? except psycopg2.Error: # updating fails, most likely due to a violated unique constraint # keeping record with nonexistent partner_id is useless, better delete it