Merge pull request #32382 from ankush/qb_ifnull

perf: Avoid Coalesce in QB `is` implementation
This commit is contained in:
Ankush Menat 2025-05-02 19:19:27 +05:30 committed by GitHub
commit f708acb59e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -95,7 +95,14 @@ def func_between(key: Field, value: list | tuple) -> frappe.qb:
def func_is(key, value):
"Wrapper for IS"
return Coalesce(key, "") != "" if value.lower() == "set" else Coalesce(key, "") == ""
match value.lower():
case "set":
return key != ""
case "not set":
return key.isnull() | (key == "")
case _:
raise ValueError("`is` operator only supports `set` and `not set` as value")
def func_timespan(key: Field, value: str) -> frappe.qb: