From 69da58e41914f4d42dcc6cf3101b79d904bb18c4 Mon Sep 17 00:00:00 2001 From: Vincent Schippefilt Date: Tue, 5 Apr 2022 14:16:57 +0000 Subject: [PATCH] [IMP] account,mail: remove select * in exist subselect no need to select * in a query that looks like select ... from A where exists(select * from B where ...) we can instead use select ... from A where exists(select 1 from B where ...) closes odoo/odoo#88013 Signed-off-by: Raphael Collet --- addons/account/models/account_account.py | 2 +- addons/im_livechat/models/mail_channel.py | 2 +- addons/mail/models/mail_channel.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/account/models/account_account.py b/addons/account/models/account_account.py index a967fc334df..ddf13bbd094 100644 --- a/addons/account/models/account_account.py +++ b/addons/account/models/account_account.py @@ -294,7 +294,7 @@ class AccountAccount(models.Model): value = not value self._cr.execute(""" SELECT id FROM account_account account - WHERE EXISTS (SELECT * FROM account_move_line aml WHERE aml.account_id = account.id LIMIT 1) + WHERE EXISTS (SELECT 1 FROM account_move_line aml WHERE aml.account_id = account.id LIMIT 1) """) return [('id', 'in' if value else 'not in', [r[0] for r in self._cr.fetchall()])] diff --git a/addons/im_livechat/models/mail_channel.py b/addons/im_livechat/models/mail_channel.py index c69fa3d7cab..571e646499d 100644 --- a/addons/im_livechat/models/mail_channel.py +++ b/addons/im_livechat/models/mail_channel.py @@ -118,7 +118,7 @@ class MailChannel(models.Model): SELECT id as id FROM mail_channel C WHERE NOT EXISTS ( - SELECT * + SELECT 1 FROM mail_message M WHERE M.res_id = C.id AND m.model = 'mail.channel' ) AND C.channel_type = 'livechat' AND livechat_channel_id IS NOT NULL AND diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py index b568dfa787e..581c1ebb084 100644 --- a/addons/mail/models/mail_channel.py +++ b/addons/mail/models/mail_channel.py @@ -886,7 +886,7 @@ class Channel(models.Model): AND P.partner_id IN %s AND C.channel_type LIKE 'chat' AND NOT EXISTS ( - SELECT * + SELECT 1 FROM mail_channel_partner P2 WHERE P2.channel_id = C.id AND P2.partner_id NOT IN %s