Skip to content

Commit e746652

Browse files
authored
Adapt to refactoring of condition objects (#371)
1 parent f7b6e8d commit e746652

5 files changed

Lines changed: 17 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
- Enh #360, #361: Implement `DMLQueryBuilder::insertReturningPks()` method (@Tigrov)
4646
- Chg #362: Replace column and table name quote character from ` to " (@Tigrov)
4747
- Enh #368: Provide `yiisoft/db-implementation` virtual package (@vjik)
48+
- Enh #371: Adapt to conditions refactoring in `yiisoft/db` package (@vjik)
4849

4950
## 1.2.0 March 21, 2024
5051

src/Builder/JsonOverlapsConditionBuilder.php

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,24 @@
88
use InvalidArgumentException;
99
use Yiisoft\Db\Exception\InvalidConfigException;
1010
use Yiisoft\Db\Exception\NotSupportedException;
11+
use Yiisoft\Db\Expression\ExpressionBuilderInterface;
1112
use Yiisoft\Db\Expression\ExpressionInterface;
1213
use Yiisoft\Db\Expression\JsonExpression;
13-
use Yiisoft\Db\QueryBuilder\Condition\Builder\AbstractOverlapsConditionBuilder;
1414
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlapsCondition;
15+
use Yiisoft\Db\QueryBuilder\QueryBuilderInterface;
1516

1617
/**
1718
* Builds expressions for {@see JsonOverlapsCondition} for SQLite Server.
1819
*
19-
* @extends AbstractOverlapsConditionBuilder<JsonOverlapsCondition>
20+
* @implements ExpressionBuilderInterface<JsonOverlapsCondition>
2021
*/
21-
final class JsonOverlapsConditionBuilder extends AbstractOverlapsConditionBuilder
22+
final class JsonOverlapsConditionBuilder implements ExpressionBuilderInterface
2223
{
24+
public function __construct(
25+
private readonly QueryBuilderInterface $queryBuilder,
26+
) {
27+
}
28+
2329
/**
2430
* Build SQL for {@see JsonOverlapsCondition}.
2531
*
@@ -32,13 +38,14 @@ final class JsonOverlapsConditionBuilder extends AbstractOverlapsConditionBuilde
3238
*/
3339
public function build(ExpressionInterface $expression, array &$params = []): string
3440
{
35-
$column = $this->prepareColumn($expression->getColumn());
36-
$values = $expression->getValues();
41+
$column = $expression->column instanceof ExpressionInterface
42+
? $this->queryBuilder->buildExpression($expression->column)
43+
: $this->queryBuilder->getQuoter()->quoteColumnName($expression->column);
3744

45+
$values = $expression->values;
3846
if (!$values instanceof ExpressionInterface) {
3947
$values = new JsonExpression($values);
4048
}
41-
4249
$values = $this->queryBuilder->buildExpression($values, $params);
4350

4451
return "EXISTS(SELECT value FROM json_each($column) INTERSECT SELECT value FROM json_each($values))=1";

src/Builder/LikeConditionBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function __construct(QueryBuilderInterface $queryBuilder)
2222

2323
public function build(ExpressionInterface $expression, array &$params = []): string
2424
{
25-
if ($expression->getCaseSensitive() === true) {
25+
if ($expression->caseSensitive === true) {
2626
throw new NotSupportedException('SQLite doesn\'t support case-sensitive "LIKE" conditions.');
2727
}
2828
return parent::build($expression, $params);

src/DQLQueryBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
use Yiisoft\Db\Query\QueryInterface;
1111
use Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder;
1212
use Yiisoft\Db\QueryBuilder\Condition\InCondition;
13-
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlapsCondition;
1413
use Yiisoft\Db\QueryBuilder\Condition\LikeCondition;
14+
use Yiisoft\Db\QueryBuilder\Condition\JsonOverlapsCondition;
1515
use Yiisoft\Db\Sqlite\Builder\InConditionBuilder;
1616
use Yiisoft\Db\Sqlite\Builder\JsonOverlapsConditionBuilder;
1717
use Yiisoft\Db\Sqlite\Builder\LikeConditionBuilder;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
/**
1818
* @group sqlite
1919
*/
20-
final class InconditionBuilderTest extends TestCase
20+
final class InConditionBuilderTest extends TestCase
2121
{
2222
use TestTrait;
2323

0 commit comments

Comments
 (0)