From bd84d7a66ad92a39118256788e121ba2d90bece9 Mon Sep 17 00:00:00 2001 From: Akhil Narang Date: Tue, 18 Nov 2025 18:18:53 +0530 Subject: [PATCH] fix: match db_query behaviour for certain cases like `filters.append(["reports_to", "=", ""])` Earlier this generated: ``` ( `tabEmployee`.`reports_to` is NULL OR `tabEmployee`.`reports_to` = '' ) ``` Without this change, with qb it was ``` `reports_to`='' ``` Signed-off-by: Akhil Narang --- frappe/database/query.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frappe/database/query.py b/frappe/database/query.py index 24edd01c3f..9c09bda25c 100644 --- a/frappe/database/query.py +++ b/frappe/database/query.py @@ -1420,7 +1420,12 @@ class Engine: if value is None: return False - if operator.lower() in ("=", "like", "is"): + if operator.lower() in ("like", "is"): + return False + + # For "=" operator, only skip IFNULL if value is truthy (non-empty string, non-zero, etc) + # When value is empty string "", we need to check for NULL values too + if operator.lower() == "=" and value: return False try: