Skip to content

Random postgresql ? #654

Open
Open
@Noido

Description

@Noido

Hi i have create DQL Function Random in postgresql but not work

<?php

namespace App\DQL;

use Doctrine\ORM\Query\Lexer;
use Doctrine\ORM\Query\Parser;
use Doctrine\ORM\Query\SqlWalker;
use Doctrine\ORM\Query\AST\Functions\FunctionNode;

class RandomFunction extends FunctionNode
{
    public function parse(Parser $parser)
    {
        $parser->match(Lexer::T_IDENTIFIER);
        $parser->match(Lexer::T_OPEN_PARENTHESIS);
        $parser->match(Lexer::T_CLOSE_PARENTHESIS);
    }

    public function getSql(SqlWalker $sqlWalker)
    {
        return 'RANDOM()';
    }
}
dql:
            numeric_functions:
                Random: App\DQL\RandomFunction
$qb->orderBy('RANDOM()');

But got error
Invalid column reference: 7 ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list

i have test

 public function test(){
        return $this->createQueryBuilder('q')->select('q.id')->orderBy('RANDOM()')->setMaxResults(5)->getQuery()->getResult();
    }

And it works but with paginator no

Thanks for your help

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions