From 3bef7eff339a135acacc31d1c2414cdd1647dacd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 14 Jan 2024 13:32:27 +0100 Subject: [PATCH] Define explicitly escape char used for like operators For now we rely on the default value set by python-sql but SQL-92 does not define a default value. Closes #12933 (grafted from 659160cd1681a6a1bc98d51a97d7765ee8d31714) --HG-- branch : 7.0 --- trytond/trytond/model/fields/field.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/trytond/trytond/model/fields/field.py b/trytond/trytond/model/fields/field.py index 0549f0a4d1..fc6b2b01f6 100644 --- a/trytond/trytond/model/fields/field.py +++ b/trytond/trytond/model/fields/field.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import warnings -from functools import wraps +from functools import partial, wraps import sql from sql import ( @@ -234,10 +234,10 @@ def order_method(func): SQL_OPERATORS = { '=': operators.Equal, '!=': operators.NotEqual, - 'like': operators.Like, - 'not like': operators.NotLike, - 'ilike': operators.ILike, - 'not ilike': operators.NotILike, + 'like': partial(operators.Like, escape='\\'), + 'not like': partial(operators.NotLike, escape='\\'), + 'ilike': partial(operators.ILike, escape='\\'), + 'not ilike': partial(operators.NotILike, escape='\\'), 'in': operators.In, 'not in': operators.NotIn, '<=': operators.LessEqual,