details:   https://code.tryton.org/tryton/commit/5bdd4910de98
branch:    default
user:      Cédric Krier <[email protected]>
date:      Wed Jun 24 22:00:10 2026 +0200
description:
        Optimize search on account's code

        Closes #14910
diffstat:

 modules/account/account.py |  17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diffs (34 lines):

diff -r 0255fea9294b -r 5bdd4910de98 modules/account/account.py
--- a/modules/account/account.py        Sat Jul 04 00:17:12 2026 +0200
+++ b/modules/account/account.py        Wed Jun 24 22:00:10 2026 +0200
@@ -527,6 +527,7 @@
 
         @classmethod
         def __setup__(cls):
+            cls.code.search_unaccented = False
             super().__setup__()
 
             if not cls.childs.domain:
@@ -964,11 +965,17 @@
             ('only_one_debit_credit_types', Check(
                     table, (table.debit_type + table.credit_type) == Null),
                 'account.msg_only_one_debit_credit_types'))
-        cls._sql_indexes.add(
-            Index(
-                table,
-                (table.left, Index.Range(cardinality='high')),
-                (table.right, Index.Range(cardinality='high'))))
+        cls._sql_indexes.update({
+                Index(table,
+                    (Coalesce(table.code, ''),
+                        Index.Equality(cardinality='high'))),
+                Index(table,
+                    (Coalesce(table.code, ''),
+                        Index.Similarity(cardinality='high'))),
+                Index(
+                    table,
+                    (table.left, Index.Range(cardinality='high')),
+                    (table.right, Index.Range(cardinality='high')))})
 
     @classmethod
     def validate_fields(cls, accounts, field_names):

Reply via email to