Merge pull request #23783 from nextcloud/fix/noid/inject-logger-systemconfig-for-query-builder

Fetch the logger and system config once for all query builder instances
This commit is contained in:
Roeland Jago Douma 2020-10-30 07:38:14 +01:00 committed by GitHub
commit 69a6b1d2be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 8 deletions

View File

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