From 48d31ccf6c6a3b4620adf459b72dd575127eb40f Mon Sep 17 00:00:00 2001 From: Tigrov Date: Tue, 3 Dec 2024 15:05:16 +0700 Subject: [PATCH 1/2] Update according to changes in `db` --- src/Connection.php | 10 +++++----- src/QueryBuilder.php | 18 +++++++++++------- tests/SchemaTest.php | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/Connection.php b/src/Connection.php index 144dd7dc..ac512cd0 100644 --- a/src/Connection.php +++ b/src/Connection.php @@ -73,11 +73,11 @@ public function getLastInsertID(string $sequenceName = null): string 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 72b579f7..34925822 100644 --- a/src/QueryBuilder.php +++ b/src/QueryBuilder.php @@ -4,6 +4,7 @@ namespace Yiisoft\Db\Oracle; +use Yiisoft\Db\Connection\ServerInfoInterface; use Yiisoft\Db\Constant\ColumnType; use Yiisoft\Db\Constant\PseudoType; use Yiisoft\Db\Oracle\Column\ColumnDefinitionBuilder; @@ -47,14 +48,17 @@ final class QueryBuilder extends AbstractQueryBuilder PseudoType::UUID_PK => 'RAW(16) DEFAULT SYS_GUID() PRIMARY KEY', ]; - public function __construct(QuoterInterface $quoter, SchemaInterface $schema) + public function __construct(QuoterInterface $quoter, SchemaInterface $schema, ServerInfoInterface $serverInfo) { - $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); + 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/SchemaTest.php b/tests/SchemaTest.php index a95e978e..8a28a7e9 100644 --- a/tests/SchemaTest.php +++ b/tests/SchemaTest.php @@ -92,7 +92,7 @@ public function testGetSchemaNames(): void $schema = $db->getSchema(); - if (version_compare($db->getServerVersion(), '12', '>')) { + if (version_compare($db->getServerInfo()->getVersion(), '12', '>')) { $this->assertContains('SYSBACKUP', $schema->getSchemaNames()); } else { $this->assertEmpty($schema->getSchemaNames()); From 925d08cfbe7216ed14ee0f8d843e5affef11b6ca Mon Sep 17 00:00:00 2001 From: Tigrov Date: Sun, 8 Dec 2024 14:05:11 +0700 Subject: [PATCH 2/2] Add line to CHANGELOG.md [skip ci] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36e211fe..b40e537d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ - Enh #288: Refactor `Schema::findColumns()` method (@Tigrov) - Enh #289: Refactor `Schema::normalizeDefaultValue()` method and move it to `ColumnFactory` class (@Tigrov) - New #292: Override `QueryBuilder::prepareBinary()` method (@Tigrov) +- Chg #294: Update `QueryBuilder` constructor (@Tigrov) ## 1.3.0 March 21, 2024