Просмотр исходного кода

perf: avoid coalescing wherever possible (#17920) (#17925)

(cherry picked from commit cdb0732646)

Co-authored-by: Ankush Menat <ankush@frappe.io>
version-14
mergify[bot] 2 лет назад
committed by GitHub
Родитель
Сommit
7c8a125c74
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: 4AEE18F83AFDEB23
2 измененных файлов: 8 добавлений и 0 удалений
  1. +3
    -0
      frappe/model/db_query.py
  2. +5
    -0
      frappe/tests/test_db_query.py

+ 3
- 0
frappe/model/db_query.py Просмотреть файл

@@ -612,6 +612,9 @@ class DatabaseQuery:
) )


elif f.operator.lower() in ("in", "not in"): elif f.operator.lower() in ("in", "not in"):
# if values contain '' or falsy values then only coalesce column
can_be_null = not f.value or any(v is None or v == "" for v in f.value)

values = f.value or "" values = f.value or ""
if isinstance(values, str): if isinstance(values, str):
values = values.split(",") values = values.split(",")


+ 5
- 0
frappe/tests/test_db_query.py Просмотреть файл

@@ -745,6 +745,11 @@ class TestReportview(unittest.TestCase):


self.assertTrue(dashboard_settings) self.assertTrue(dashboard_settings)


def test_coalesce_with_in_ops(self):
self.assertNotIn("ifnull", frappe.get_all("User", {"name": ("in", ["a", "b"])}, run=0))
self.assertIn("ifnull", frappe.get_all("User", {"name": ("in", ["a", None])}, run=0))
self.assertIn("ifnull", frappe.get_all("User", {"name": ("in", ["a", ""])}, run=0))



def add_child_table_to_blog_post(): def add_child_table_to_blog_post():
child_table = frappe.get_doc( child_table = frappe.get_doc(


Загрузка…
Отмена
Сохранить