You are here

public function Select::compile in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Database/Query/Select.php \Drupal\Core\Database\Query\Select::compile()

Compiles the saved conditions for later retrieval.

This method does not return anything, but simply prepares data to be retrieved via __toString() and arguments().

Parameters

$connection: The database connection for which to compile the conditionals.

$queryPlaceholder: The query this condition belongs to. If not given, the current query is used.

Overrides QueryConditionTrait::compile

2 calls to Select::compile()
Select::getArguments in core/lib/Drupal/Core/Database/Query/Select.php
Compiles and returns an associative array of the arguments for this prepared statement.
Select::__toString in core/lib/Drupal/Core/Database/Query/Select.php
Implements PHP magic __toString method to convert the query to a string.

File

core/lib/Drupal/Core/Database/Query/Select.php, line 228

Class

Select
Query builder for SELECT statements.

Namespace

Drupal\Core\Database\Query

Code

public function compile(Connection $connection, PlaceholderInterface $queryPlaceholder) {
  $this->condition
    ->compile($connection, $queryPlaceholder);
  $this->having
    ->compile($connection, $queryPlaceholder);
  foreach ($this->tables as $table) {

    // If this table is a subquery, compile it recursively.
    if ($table['table'] instanceof SelectInterface) {
      $table['table']
        ->compile($connection, $queryPlaceholder);
    }

    // Make sure join conditions are also compiled.
    if (!empty($table['condition']) && $table['condition'] instanceof ConditionInterface) {
      $table['condition']
        ->compile($connection, $queryPlaceholder);
    }
  }

  // If there are any dependent queries to UNION, compile it recursively.
  foreach ($this->union as $union) {
    $union['query']
      ->compile($connection, $queryPlaceholder);
  }
}