From 23d9c20172adf016c701fc954387825b8ccb0b94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 24 Jun 2026 22:06:59 +0200 Subject: [PATCH] Do not apply COALESCE on required Char Closes #14909 --- trytond/trytond/model/fields/char.py | 3 ++- trytond/trytond/model/modelsql.py | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/trytond/trytond/model/fields/char.py b/trytond/trytond/model/fields/char.py index 4998a8bb93..778d52cf2d 100644 --- a/trytond/trytond/model/fields/char.py +++ b/trytond/trytond/model/fields/char.py @@ -114,7 +114,8 @@ class Char(FieldTranslate): 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 --git a/trytond/trytond/model/modelsql.py b/trytond/trytond/model/modelsql.py index cff3412b05..576fe7e5d9 100644 --- a/trytond/trytond/model/modelsql.py +++ b/trytond/trytond/model/modelsql.py @@ -349,7 +349,9 @@ class ModelSQL(ModelStorage): 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(