From bee0a048f93f301c393256a92ef841a3aa549b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 25 Feb 2025 10:05:43 +0100 Subject: [PATCH] Add partial index on sale and purchase line for relate from product Closes #13887 --- modules/purchase/purchase.py | 7 +++++++ modules/sale/sale.py | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py index 3c0955e72c..29dc5e6403 100644 --- a/modules/purchase/purchase.py +++ b/modules/purchase/purchase.py @@ -1411,7 +1411,14 @@ class Line(sequence_ordered(), ModelSQL, ModelView): @classmethod def __setup__(cls): super().__setup__() + t = cls.__table__() cls.__access__.add('purchase') + cls._sql_indexes.update({ + Index(t, + (t.product, Index.Range()), + (t.purchase, Index.Equality()), + where=t.type == 'line'), + }) cls._order.insert(0, ('purchase.purchase_date', 'DESC NULLS FIRST')) cls._order.insert(1, ('purchase.id', 'DESC')) diff --git a/modules/sale/sale.py b/modules/sale/sale.py index 31d17e638f..00aa4dddfe 100644 --- a/modules/sale/sale.py +++ b/modules/sale/sale.py @@ -1579,7 +1579,14 @@ class SaleLine(TaxableMixin, sequence_ordered(), ModelSQL, ModelView): @classmethod def __setup__(cls): super().__setup__() + t = cls.__table__() cls.__access__.add('sale') + cls._sql_indexes.update({ + Index(t, + (t.product, Index.Range()), + (t.sale, Index.Equality()), + where=t.type == 'line'), + }) cls._order.insert(0, ('sale.sale_date', 'DESC NULLS FIRST')) cls._order.insert(1, ('sale.id', 'DESC'))