From abb51c5cb3f47719c3aff28f4c14fd18db711ca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 10 Oct 2024 00:44:50 +0200 Subject: [PATCH] Test all the SQL constraints name first before testing common column names Closes #13586 --- trytond/trytond/model/modelsql.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/trytond/trytond/model/modelsql.py b/trytond/trytond/model/modelsql.py index 2188ac3c28..610333fa51 100644 --- a/trytond/trytond/model/modelsql.py +++ b/trytond/trytond/model/modelsql.py @@ -595,11 +595,13 @@ class ModelSQL(ModelStorage): gettext('ir.msg_required_validation', **cls.__names__(field_name))) for name, constraint, error in cls._sql_constraints: - if (backend.TableHandler.convert_name(name) in str(exception) - or (isinstance(constraint, (Unique, Exclude)) - and all( - c.name in str(exception) - for c in constraint.columns))): + if backend.TableHandler.convert_name(name) in str(exception): + raise SQLConstraintError(gettext(error)) + for _, constraint, error in cls._sql_constraints: + if (isinstance(constraint, (Unique, Exclude)) + and all( + c.name in str(exception) + for c in constraint.columns)): raise SQLConstraintError(gettext(error)) # Check foreign key in last because this can raise false positive