From 2813dea3d05ab36a47f9104ebfbdc06eec4d49d6 Mon Sep 17 00:00:00 2001
From: Stanislas Sobieski <sts@odoo.com>
Date: Mon, 12 Sep 2022 15:39:33 +0000
Subject: [PATCH] [FIX] purchase_stock: add index on created_purchase_line_id
 of stock.move

EXPLAIN ANALYZE SELECT "stock_move".id
FROM "stock_move"
WHERE ("stock_move"."created_purchase_line_id" in (24065, 24066, 24081, 24082, 24083, 24084, 24085, 24086, 24087, 24088, 24089, 24090, 24091, 24092, 24093, 26121, 26487)) and ("stock_move"."company_id" in (1))
ORDER BY "stock_move"."sequence" ,"stock_move"."id" ;
Goes from 2231.021 ms to 1ms on a database with 2.800.000 stock_move.

closes odoo/odoo#105136

X-original-commit: d7ea47f487c0317023db05353d6fbcefc7febf41
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
---
 addons/purchase_stock/models/stock.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/addons/purchase_stock/models/stock.py b/addons/purchase_stock/models/stock.py
index 887afb6b99ca..7f131ba3da56 100644
--- a/addons/purchase_stock/models/stock.py
+++ b/addons/purchase_stock/models/stock.py
@@ -19,7 +19,7 @@ class StockMove(models.Model):
     purchase_line_id = fields.Many2one('purchase.order.line',
         'Purchase Order Line', ondelete='set null', index=True, readonly=True)
     created_purchase_line_id = fields.Many2one('purchase.order.line',
-        'Created Purchase Order Line', ondelete='set null', readonly=True, copy=False)
+        'Created Purchase Order Line', ondelete='set null', readonly=True, copy=False, index=True)
 
     @api.model
     def _prepare_merge_moves_distinct_fields(self):
-- 
GitLab