details:   https://code.tryton.org/tryton/commit/776fe202ed6f
branch:    default
user:      Cédric Krier <[email protected]>
date:      Wed Jun 24 22:06:59 2026 +0200
description:
        Do not apply COALESCE on required Char

        Closes #14909
diffstat:

 trytond/trytond/model/fields/char.py |  3 ++-
 trytond/trytond/model/modelsql.py    |  4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diffs (27 lines):

diff -r 5bdd4910de98 -r 776fe202ed6f trytond/trytond/model/fields/char.py
--- a/trytond/trytond/model/fields/char.py      Wed Jun 24 22:00:10 2026 +0200
+++ b/trytond/trytond/model/fields/char.py      Wed Jun 24 22:06:59 2026 +0200
@@ -114,7 +114,8 @@
 
     def _domain_column(self, operator, column):
         column = super()._domain_column(operator, column)
-        column = Coalesce(column, '')
+        if not self.required:
+            column = Coalesce(column, '')
         if self.search_unaccented and operator.endswith('ilike'):
             database = Transaction().database
             column = database.unaccent(column)
diff -r 5bdd4910de98 -r 776fe202ed6f trytond/trytond/model/modelsql.py
--- a/trytond/trytond/model/modelsql.py Wed Jun 24 22:00:10 2026 +0200
+++ b/trytond/trytond/model/modelsql.py Wed Jun 24 22:06:59 2026 +0200
@@ -349,7 +349,9 @@
             rec_name_field = getattr(cls, cls._rec_name, None)
             if (isinstance(rec_name_field, fields.Field)
                     and not hasattr(rec_name_field, 'set')):
-                column = Coalesce(Column(table, cls._rec_name), '')
+                column = Column(table, cls._rec_name)
+                if not rec_name_field.required:
+                    column = Coalesce(column, '')
                 if getattr(rec_name_field, 'search_unaccented', False):
                     column = Index.Unaccent(column)
                 cls._sql_indexes.add(

Reply via email to