From f12e7e0e95deae4ca309ece0826c744209df3054 Mon Sep 17 00:00:00 2001
From: Morris Jobke <hey@morrisjobke.de>
Date: Thu, 29 Oct 2020 22:35:06 +0100
Subject: [PATCH] Fetch the logger and system config once for all query builder
 instances

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
---
 lib/private/DB/Connection.php | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php
index c6c01930cc4..0386a8c5493 100644
--- a/lib/private/DB/Connection.php
+++ b/lib/private/DB/Connection.php
@@ -42,21 +42,25 @@ use Doctrine\DBAL\Exception\ConstraintViolationException;
 use Doctrine\DBAL\Platforms\MySqlPlatform;
 use Doctrine\DBAL\Schema\Schema;
 use OC\DB\QueryBuilder\QueryBuilder;
+use OC\SystemConfig;
 use OCP\DB\QueryBuilder\IQueryBuilder;
 use OCP\IDBConnection;
+use OCP\ILogger;
 use OCP\PreConditionNotMetException;
 
 class Connection extends ReconnectWrapper implements IDBConnection {
-	/**
-	 * @var string $tablePrefix
-	 */
+	/** @var string */
 	protected $tablePrefix;
 
-	/**
-	 * @var \OC\DB\Adapter $adapter
-	 */
+	/** @var \OC\DB\Adapter $adapter */
 	protected $adapter;
 
+	/** @var SystemConfig */
+	private $systemConfig;
+
+	/** @var ILogger */
+	private $logger;
+
 	protected $lockedTable = null;
 
 	/** @var int */
@@ -90,8 +94,8 @@ class Connection extends ReconnectWrapper implements IDBConnection {
 		$this->queriesBuilt++;
 		return new QueryBuilder(
 			$this,
-			\OC::$server->getSystemConfig(),
-			\OC::$server->getLogger()
+			$this->systemConfig,
+			$this->logger
 		);
 	}
 
@@ -165,6 +169,9 @@ class Connection extends ReconnectWrapper implements IDBConnection {
 		parent::__construct($params, $driver, $config, $eventManager);
 		$this->adapter = new $params['adapter']($this);
 		$this->tablePrefix = $params['tablePrefix'];
+
+		$this->systemConfig = \OC::$server->getSystemConfig();
+		$this->logger = \OC::$server->getLogger();
 	}
 
 	/**
-- 
GitLab