X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Flib%2FDrupal%2FCore%2FEntity%2FQuery%2FSql%2FQuery.php;h=7e5db5b9a05cb7214961ea2822307c13cbec9151;hb=1c1cb0980bfa6caf0c24cce671b6bb541dc87583;hp=cd245ef7b5284511a979f00ea05ef217b661783d;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/core/lib/Drupal/Core/Entity/Query/Sql/Query.php b/web/core/lib/Drupal/Core/Entity/Query/Sql/Query.php index cd245ef7b..7e5db5b9a 100644 --- a/web/core/lib/Drupal/Core/Entity/Query/Sql/Query.php +++ b/web/core/lib/Drupal/Core/Entity/Query/Sql/Query.php @@ -64,7 +64,6 @@ class Query extends QueryBase implements QueryInterface { $this->connection = $connection; } - /** * {@inheritdoc} */ @@ -119,6 +118,14 @@ class Query extends QueryBase implements QueryInterface { // entity id. $this->sqlFields["base_table.$id_field"] = ['base_table', $id_field]; } + + // Add a self-join to the base revision table if we're querying only the + // latest revisions. + if ($this->latestRevision && $revision_field) { + $this->sqlQuery->leftJoin($base_table, 'base_table_2', "base_table.$id_field = base_table_2.$id_field AND base_table.$revision_field < base_table_2.$revision_field"); + $this->sqlQuery->isNull("base_table_2.$id_field"); + } + if ($this->accessCheck) { $this->sqlQuery->addTag($this->entityTypeId . '_access'); }