Merge pull request #32382 from ankush/qb_ifnull
perf: Avoid Coalesce in QB `is` implementation
This commit is contained in:
commit
f708acb59e
1 changed files with 8 additions and 1 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue