diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Update.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Update.php index 09efb6ce1965ef2a6b0426dce4461b0a49ee6372..1bee32d394c472a799bc1f0d2612cdb072af560c 100644 --- a/core/lib/Drupal/Core/Database/Driver/pgsql/Update.php +++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Update.php @@ -9,6 +9,7 @@ use Drupal\Core\Database\Database; use Drupal\Core\Database\Query\Update as QueryUpdate; +use Drupal\Core\Database\Query\SelectInterface; class Update extends QueryUpdate { @@ -36,6 +37,13 @@ public function execute() { $stmt->bindParam($placeholder, $data['arguments'][$placeholder]); } } + if ($data['expression'] instanceof SelectInterface) { + $data['expression']->compile($this->connection, $this); + $select_query_arguments = $data['expression']->arguments(); + foreach ($select_query_arguments as $placeholder => $argument) { + $stmt->bindParam($placeholder, $select_query_arguments[$placeholder]); + } + } unset($fields[$field]); }