Passed
Push — master ( edb396...4eca28 )
by Jonas
10:14
created

SQLiteGrammar::compileUnion()   B

Complexity

Conditions 8
Paths 3

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 8

Importance

Changes 0
Metric Value
cc 8
eloc 7
nc 3
nop 1
dl 0
loc 13
ccs 7
cts 7
cp 1
crap 8
rs 8.4444
c 0
b 0
f 0
1
<?php
2
3
namespace Staudenmeir\LaravelCte\Query\Grammars;
4
5
use Illuminate\Database\Query\Grammars\SQLiteGrammar as Base;
6
use Staudenmeir\LaravelCte\Query\Builder;
7
8
class SQLiteGrammar extends Base
9
{
10
    use CompilesExpressions;
0 ignored issues
show
introduced by
The trait Staudenmeir\LaravelCte\Q...ars\CompilesExpressions requires some properties which are not provided by Staudenmeir\LaravelCte\Q...\Grammars\SQLiteGrammar: $unionExpressions, $expressions, $recursionLimit, $unionRecursionLimit
Loading history...
11
12
    /**
13
     * Compile a single union statement.
14
     *
15
     * @param array $union
16
     * @return string
17
     */
18 9
    protected function compileUnion(array $union)
19
    {
20 9
        $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 9);
21
22 9
        if (($backtrace[6]['class'] === Builder::class && $backtrace[6]['function'] === 'withExpression')
23 9
            || ($backtrace[7]['class'] === Builder::class && $backtrace[7]['function'] === 'withExpression')
24 5
            || ($backtrace[8]['class'] === Builder::class && $backtrace[8]['function'] === 'withExpression')) {
25
            $conjunction = $union['all'] ? ' union all ' : ' union ';
26 5
27
            return $conjunction.$union['query']->toSql();
28
        }
29 4
30
        return parent::compileUnion($union);
31
    }
32
}
33