Skip to content

Commit 986a050

Browse files
committed
implement
1 parent f17f4a2 commit 986a050

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Yiisoft\Db\Pgsql\Builder;
6+
7+
use Yiisoft\Db\QueryBuilder\Condition\Interface\LikeConditionInterface;
8+
9+
/**
10+
* Build an object of {@see LikeConditionInterface} into SQL expressions for PostgreSQL Server.
11+
*/
12+
final class LikeConditionBuilder extends \Yiisoft\Db\QueryBuilder\Condition\Builder\LikeConditionBuilder
13+
{
14+
protected function parseOperator(LikeConditionInterface $expression): array
15+
{
16+
[$andor, $not, $operator] = parent::parseOperator($expression);
17+
18+
$operator = match($expression->getCaseSensitive()) {
19+
true => 'LIKE',
20+
false => 'ILIKE',
21+
default => $operator,
22+
};
23+
24+
return [$andor, $not, $operator];
25+
}
26+
}

src/DQLQueryBuilder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Yiisoft\Db\Pgsql\Builder\ArrayExpressionBuilder;
1313
use Yiisoft\Db\Pgsql\Builder\ArrayOverlapsConditionBuilder;
1414
use Yiisoft\Db\Pgsql\Builder\JsonOverlapsConditionBuilder;
15+
use Yiisoft\Db\Pgsql\Builder\LikeConditionBuilder;
1516
use Yiisoft\Db\Pgsql\Builder\StructuredExpressionBuilder;
1617
use Yiisoft\Db\Pgsql\Builder\ExpressionBuilder;
1718
use Yiisoft\Db\Pgsql\Builder\JsonExpressionBuilder;
@@ -62,6 +63,7 @@ protected function defaultExpressionBuilders(): array
6263
JsonOverlapsCondition::class => JsonOverlapsConditionBuilder::class,
6364
StructuredExpression::class => StructuredExpressionBuilder::class,
6465
Expression::class => ExpressionBuilder::class,
66+
LikeCondition::class => LikeConditionBuilder::class,
6567
];
6668
}
6769
}

0 commit comments

Comments
 (0)