perf: Avoid Coalesce in QB is implementation

This commit is contained in:
Ankush Menat 2025-05-02 19:09:10 +05:30
parent b6d44a4725
commit c778ce370f

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: