From 8cf6d42d173e4b7d6d7c2966fbfc2dadc918e72d Mon Sep 17 00:00:00 2001 From: Aradhya Date: Fri, 10 Jun 2022 08:33:03 +0530 Subject: [PATCH] feat: Trying to replace db_query operations directly with qb --- frappe/model/db_query.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index fe52818235..6ac3402235 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -89,6 +89,9 @@ class DatabaseQuery(object): ignore_ddl=False, parent_doctype=None, ) -> List: + from frappe.database.query import Query + + self.query = Query() if ( not ignore_permissions @@ -112,6 +115,8 @@ class DatabaseQuery(object): # if `filters` is a list of strings, its probably fields filters, fields = fields, filters + self.temp_filters, self.temp_fields = filters, fields + if fields: self.fields = fields else: @@ -158,7 +163,7 @@ class DatabaseQuery(object): if not self.columns: return [] - result = self.build_and_run() + result = self.build_and_run(ignore_permissions=ignore_permissions) if with_comment_count and not as_list and self.doctype: self.add_comment_count(result) @@ -172,7 +177,7 @@ class DatabaseQuery(object): return result - def build_and_run(self): + def build_and_run(self, ignore_permissions): args = self.prepare_args() args.limit = self.add_limit() @@ -197,6 +202,15 @@ class DatabaseQuery(object): %(limit)s""" % args ) + if ignore_permissions: + sql = self.query.get_sql(self.doctype, fields=self.temp_fields, filters=self.temp_filters) + return sql.run( + as_dict=not self.as_list, + debug=self.debug, + update=self.update, + ignore_ddl=self.ignore_ddl, + run=self.run, + ) return frappe.db.sql( query,