protected function getPlatformGroupConcat($alias, QueryBuilder $query)
{
$platform = $query->getConnection()->getDatabasePlatform()->getName();
$field = $this->mapping['fieldname'];
$dummy = 'f_' . $field;
switch ($platform) {
case 'mysql':
return "GROUP_CONCAT(DISTINCT CONCAT_WS('_', " . $dummy . '.name, ' . $dummy . '.grouping, ' . $dummy . ".id)) as {$alias}";
case 'sqlite':
return 'GROUP_CONCAT(DISTINCT ' . $dummy . ".name||'_'||" . $dummy . ".grouping||'_'||" . $dummy . ".id) as {$alias}";
case 'postgresql':
return 'string_agg(' . $dummy . ".name||'_'||" . $dummy . ".grouping||'_'||" . $dummy . ".id, ',' ORDER BY " . $dummy . ".grouping) as {$alias}";
}
}