diff --git a/src/Query/Mysql/GroupConcat.php b/src/Query/Mysql/GroupConcat.php index e826313d6..b5e486e5a 100644 --- a/src/Query/Mysql/GroupConcat.php +++ b/src/Query/Mysql/GroupConcat.php @@ -3,6 +3,10 @@ namespace DoctrineExtensions\Query\Mysql; use Doctrine\ORM\Query\AST\Functions\FunctionNode; +use Doctrine\ORM\Query\AST\Node; +use Doctrine\ORM\Query\AST\OrderByClause; +use Doctrine\ORM\Query\AST\PathExpression; +use Doctrine\ORM\Query\AST\Subselect; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; use Doctrine\ORM\Query\TokenType; @@ -12,16 +16,25 @@ use function strtolower; /** - * ? + * GreatestFunction ::= "GROUP_CONCAT" "(" ["DISTINCT"] StringExpression|SingleValuedPathExpression [{ "," StringPrimary }*] ["ORDER" "BY" OrderByItem { "," OrderByItem }*] [ "SEPARATOR" StringPrimary ] ")" + * + * @link https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat + * + * @example GROUP_CONCAT(foo.bar, foo.bar2) FROM entity + * @example GROUP_CONCAT(DISTINCT foo.bar, foo.bar2 ORDER BY foo.bar ASC, foo.bar2 DESC SEPARATOR ", ") */ class GroupConcat extends FunctionNode { + /** @var bool */ public $isDistinct = false; + /** @var array */ public $pathExp = null; + /** @var Node */ public $separator = null; + /** @var OrderByClause */ public $orderBy = null; public function parse(Parser $parser): void