Bolt\Storage\Field\Type\RepeaterType::getPlatformGroupConcat PHP Method

getPlatformGroupConcat() protected method

Get platform specific group_concat token for provided column
protected getPlatformGroupConcat ( string $alias, Doctrine\DBAL\Query\QueryBuilder $query ) : string
$alias string
$query Doctrine\DBAL\Query\QueryBuilder
return string
    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}";
        }
    }