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(