Random   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 5
dl 0
loc 29
ccs 14
cts 14
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A parse() 0 6 1
A getSql() 0 11 3
1
<?php
2
namespace Doctrine\Tools;
3
4
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
5
use Doctrine\ORM\Query\Lexer;
6
use Doctrine\ORM\Query\Parser;
7
use Doctrine\ORM\Query\QueryException;
8
use Doctrine\ORM\Query\SqlWalker;
9
10
class Random extends FunctionNode
11
{
12
    /**
13
     * @param Parser $parser
14
     */
15 9
    public function parse(Parser $parser)
16
    {
17 9
        $parser->match(Lexer::T_IDENTIFIER);
18 9
        $parser->match(Lexer::T_OPEN_PARENTHESIS);
19 9
        $parser->match(Lexer::T_CLOSE_PARENTHESIS);
20 9
    }
21
22
    /**
23
     * @param  SqlWalker $sqlWalker
24
     * @return string
25
     * @throws QueryException
26
     */
27 9
    public function getSql(SqlWalker $sqlWalker)
28
    {
29 9
        switch ($sqlWalker->getConnection()->getDatabasePlatform()->getName()) {
30 9
            case 'postgresql':
31 3
                return 'RANDOM()';
32 6
            case 'mysql':
33 3
                return 'RAND()';
34 2
            default:
35 3
                throw new QueryException("You can't use RANDOM()!");
36 2
        }
37
    }
38
}
39