DQLQueryBuilder   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
dl 0
loc 35
rs 10
c 1
b 0
f 0
ccs 13
cts 13
cp 1
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A defaultConditionClasses() 0 7 1
A defaultExpressionBuilders() 0 7 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Db\Pgsql;
6
7
use Yiisoft\Db\Expression\ArrayExpression;
8
use Yiisoft\Db\Expression\Expression;
9
use Yiisoft\Db\Expression\ExpressionBuilderInterface;
10
use Yiisoft\Db\Expression\JsonExpression;
11
use Yiisoft\Db\Pgsql\Builder\ArrayExpressionBuilder;
12
use Yiisoft\Db\Pgsql\Builder\StructuredExpressionBuilder;
13
use Yiisoft\Db\Pgsql\Builder\ExpressionBuilder;
14
use Yiisoft\Db\Pgsql\Builder\JsonExpressionBuilder;
15
use Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder;
16
use Yiisoft\Db\QueryBuilder\Condition\LikeCondition;
17
18
use function array_merge;
19
20
/**
21
 * Implements a DQL (Data Query Language) SQL statements for PostgreSQL Server.
22
 */
23
final class DQLQueryBuilder extends AbstractDQLQueryBuilder
24
{
25
    /**
26
     * Has an array of default condition classes.
27
     *
28
     * Extend this method if you want to change default condition classes for the query builder.
29
     *
30
     * {@see conditionClasses} docs for details.
31 611
     */
32
    protected function defaultConditionClasses(): array
33 611
    {
34 611
        return array_merge(parent::defaultConditionClasses(), [
35 611
            'ILIKE' => LikeCondition::class,
36 611
            'NOT ILIKE' => LikeCondition::class,
37 611
            'OR ILIKE' => LikeCondition::class,
38 611
            'OR NOT ILIKE' => LikeCondition::class,
39
        ]);
40
    }
41
42
    /**
43
     * Has an array of default expression builders.
44
     *
45
     * Extend this method and override it if you want to change default expression builders for this query builder.
46
     *
47
     * {@see ExpressionBuilder} docs for details.
48
     *
49
     * @psalm-return array<string, class-string<ExpressionBuilderInterface>>
50 611
     */
51
    protected function defaultExpressionBuilders(): array
52 611
    {
53 611
        return array_merge(parent::defaultExpressionBuilders(), [
54 611
            ArrayExpression::class => ArrayExpressionBuilder::class,
55 611
            JsonExpression::class => JsonExpressionBuilder::class,
56 611
            StructuredExpression::class => StructuredExpressionBuilder::class,
57
            Expression::class => ExpressionBuilder::class,
58
        ]);
59
    }
60
}
61