HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/framework/DB/Sql/ConcatExpression.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Framework\DB\Sql;

use Magento\Framework\App\ResourceConnection;
use Magento\Framework\DB\Adapter\AdapterInterface;

/**
 * Class Concat
 */
class ConcatExpression extends Expression
{
    /**
     * @var AdapterInterface
     */
    protected $adapter;

    /**
     * @var string[]
     */
    protected $columns;

    /**
     * @var string
     */
    protected $separator;

    /**
     * @param ResourceConnection $resource
     * @param array $columns
     * @param string $separator
     */
    public function __construct(
        ResourceConnection $resource,
        array $columns,
        $separator = ' '
    ) {
        $this->adapter = $resource->getConnection();
        $this->columns = $columns;
        $this->separator = $separator;
    }

    /**
     * Returns SQL expression
     *   TRIM(CONCAT_WS(separator, IF(str1 <> '', str1, NULL), IF(str2 <> '', str2, NULL) ...))
     *
     * @return string
     */
    public function __toString()
    {
        $columns = [];
        foreach ($this->columns as $key => $part) {
            if (isset($part['columnName']) && $part['columnName'] instanceof \Zend_Db_Expr) {
                $column = $part['columnName'];
            } else {
                $column = $this->adapter->quoteIdentifier(
                    (isset($part['tableAlias']) ? $part['tableAlias'] . '.' : '')
                    . (isset($part['columnName']) ? $part['columnName'] : $key)
                );
            }
            $columns[] = $this->adapter->getCheckSql($column . " <> ''", $column, 'NULL');
        }
        return sprintf(
            'TRIM(%s)',
            $this->adapter->getConcatSql($columns, $this->separator)
        );
    }
}