function Select::addExpression

Same name in this branch
  1. 9 core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::addExpression()
Same name in other branches
  1. 8.9.x core/lib/Drupal/Core/Database/Driver/pgsql/Select.php \Drupal\Core\Database\Driver\pgsql\Select::addExpression()
  2. 8.9.x core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::addExpression()
  3. 10 core/modules/pgsql/src/Driver/Database/pgsql/Select.php \Drupal\pgsql\Driver\Database\pgsql\Select::addExpression()
  4. 10 core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::addExpression()
  5. 11.x core/modules/pgsql/src/Driver/Database/pgsql/Select.php \Drupal\pgsql\Driver\Database\pgsql\Select::addExpression()
  6. 11.x core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::addExpression()

Overrides Select::addExpression

1 call to Select::addExpression()
Select::orderRandom in core/modules/pgsql/src/Driver/Database/pgsql/Select.php
Orders the result set by a random value.

File

core/modules/pgsql/src/Driver/Database/pgsql/Select.php, line 127

Class

Select
PostgreSQL implementation of \Drupal\Core\Database\Query\Select.

Namespace

Drupal\pgsql\Driver\Database\pgsql

Code

public function addExpression($expression, $alias = NULL, $arguments = []) {
    if (empty($alias)) {
        $alias = 'expression';
    }
    // This implements counting in the same manner as the parent method.
    $alias_candidate = $alias;
    $count = 2;
    while (!empty($this->expressions[$alias_candidate])) {
        $alias_candidate = $alias . '_' . $count++;
    }
    $alias = $alias_candidate;
    $this->expressions[$alias] = [
        'expression' => $expression,
        'alias' => $this->connection
            ->escapeAlias($alias_candidate),
        'arguments' => $arguments,
    ];
    return $alias;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.