From 05894b2e5badd0a48c50369a5ccfdc2642ca1105 Mon Sep 17 00:00:00 2001 From: Tigrov Date: Tue, 3 Dec 2024 15:05:40 +0700 Subject: [PATCH] Update according to changes in `db` --- src/Connection.php | 13 +++++-------- src/QueryBuilder.php | 19 +++++++++++-------- tests/CommandTest.php | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/Connection.php b/src/Connection.php index 03345cc6..7c4ceff2 100644 --- a/src/Connection.php +++ b/src/Connection.php @@ -58,14 +58,11 @@ public function createTransaction(): Transaction public function getQueryBuilder(): QueryBuilderInterface { - if ($this->queryBuilder === null) { - $this->queryBuilder = new QueryBuilder( - $this->getQuoter(), - $this->getSchema(), - ); - } - - return $this->queryBuilder; + return $this->queryBuilder ??= new QueryBuilder( + $this->getQuoter(), + $this->getSchema(), + $this->getServerInfo(), + ); } public function getQuoter(): QuoterInterface diff --git a/src/QueryBuilder.php b/src/QueryBuilder.php index 024affb9..896a097d 100644 --- a/src/QueryBuilder.php +++ b/src/QueryBuilder.php @@ -4,6 +4,7 @@ namespace Yiisoft\Db\Sqlite; +use Yiisoft\Db\Connection\ServerInfoInterface; use Yiisoft\Db\Constant\ColumnType; use Yiisoft\Db\Constant\PseudoType; use Yiisoft\Db\QueryBuilder\AbstractQueryBuilder; @@ -48,14 +49,16 @@ final class QueryBuilder extends AbstractQueryBuilder ColumnType::JSON => 'json', ]; - public function __construct(QuoterInterface $quoter, SchemaInterface $schema) - { - $ddlBuilder = new DDLQueryBuilder($this, $quoter, $schema); - $dmlBuilder = new DMLQueryBuilder($this, $quoter, $schema); - $dqlBuilder = new DQLQueryBuilder($this, $quoter); - $columnDefinitionBuilder = new ColumnDefinitionBuilder($this); - - parent::__construct($quoter, $schema, $ddlBuilder, $dmlBuilder, $dqlBuilder, $columnDefinitionBuilder); + public function __construct(QuoterInterface $quoter, SchemaInterface $schema, ServerInfoInterface $serverInfo) { + parent::__construct( + $quoter, + $schema, + $serverInfo, + new DDLQueryBuilder($this, $quoter, $schema), + new DMLQueryBuilder($this, $quoter, $schema), + new DQLQueryBuilder($this, $quoter), + new ColumnDefinitionBuilder($this), + ); } protected function prepareBinary(string $binary): string diff --git a/tests/CommandTest.php b/tests/CommandTest.php index c68b5ffa..50619473 100644 --- a/tests/CommandTest.php +++ b/tests/CommandTest.php @@ -482,7 +482,7 @@ public function testUpsert(array $firstData, array $secondData): void { $db = $this->getConnection(); - if (version_compare($db->getServerVersion(), '3.8.3', '<')) { + if (version_compare($db->getServerInfo()->getVersion(), '3.8.3', '<')) { $this->markTestSkipped('SQLite < 3.8.3 does not support "WITH" keyword.'); }