function Select::addExpression

Same name in this branch
  1. 10 core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::addExpression()
Same name and namespace in other branches
  1. 9 core/modules/pgsql/src/Driver/Database/pgsql/Select.php \Drupal\pgsql\Driver\Database\pgsql\Select::addExpression()
  2. 9 core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::addExpression()
  3. 8.9.x core/lib/Drupal/Core/Database/Driver/pgsql/Select.php \Drupal\Core\Database\Driver\pgsql\Select::addExpression()
  4. 8.9.x 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.