From 60f924386ce9ca878bb579800feaeff371e3f9f4 Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Sat, 25 Sep 2021 18:35:31 +0100 Subject: [PATCH] Issue #3190818 by Wim Leers, narendraR, quietone, xjm: Allow source counts to be cached: implement ::doCount() instead of ::count() --- .../src/Plugin/migrate/source/d7/EntityTranslationSettings.php | 2 +- .../field/src/Plugin/migrate/source/d7/FieldInstance.php | 2 +- .../file/src/Plugin/migrate/source/d6/UploadInstance.php | 2 +- .../migrate/src/Plugin/migrate/source/DummyQueryTrait.php | 2 +- .../migrate/src/Plugin/migrate/source/EmbeddedDataSource.php | 2 ++ core/modules/migrate/src/Plugin/migrate/source/EmptySource.php | 2 +- .../migrate_drupal/src/Plugin/migrate/source/Variable.php | 2 +- .../src/Plugin/migrate/source/d6/VariableTranslation.php | 2 +- .../src/Plugin/migrate/source/d7/VariableTranslation.php | 2 +- core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php | 2 +- core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php | 2 +- 11 files changed, 12 insertions(+), 10 deletions(-) diff --git a/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php b/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php index f01146159fa8..1723e09708b3 100644 --- a/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php +++ b/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php @@ -193,7 +193,7 @@ public function getIds() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { // Since the number of variables we fetch with query() does not match the // actual number of rows generated by initializeIterator(), we need to // override count() to return the correct count. diff --git a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php index d23c1b52c4fc..572f6142b111 100644 --- a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php +++ b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php @@ -252,7 +252,7 @@ public function getIds() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return $this->initializeIterator()->count(); } diff --git a/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php b/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php index f4182a927e19..08b2b3b0a0c4 100644 --- a/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php +++ b/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php @@ -78,7 +78,7 @@ public function fields() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return count($this->initializeIterator()); } diff --git a/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php b/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php index 51a456a017a7..93509af71ce6 100644 --- a/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php +++ b/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php @@ -27,7 +27,7 @@ public function query() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return 1; } diff --git a/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php b/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php index 2ae9cbd2d429..feca681f59f4 100644 --- a/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php +++ b/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php @@ -114,6 +114,8 @@ public function getIds() { * {@inheritdoc} */ public function count($refresh = FALSE) { + // We do not want this source plugin to have a cacheable count. + // @see \Drupal\migrate_cache_counts_test\Plugin\migrate\source\CacheableEmbeddedDataSource return count($this->dataRows); } diff --git a/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php b/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php index 04667cb91d10..123eb9c4cbe6 100644 --- a/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php +++ b/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php @@ -63,7 +63,7 @@ public function getIds() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return 1; } diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php index 1b7679ea0dbc..62f4f6f0249a 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php @@ -134,7 +134,7 @@ protected function values() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { if (empty($this->variablesNoRowIfMissing)) { return 1; } diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php index eb897ee38580..ad55192bf7b1 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php @@ -88,7 +88,7 @@ protected function values() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return $this->initializeIterator()->count(); } diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php index eb71189a442a..fe55c782ec14 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php @@ -93,7 +93,7 @@ protected function values() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return $this->initializeIterator()->count(); } diff --git a/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php b/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php index 88d84d95249f..a85d49b3008c 100644 --- a/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php +++ b/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php @@ -12,7 +12,7 @@ abstract class ViewModeBase extends DrupalSqlBase { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return count($this->initializeIterator()); } diff --git a/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php b/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php index 079bfaeb7e71..ca90d9fb51ab 100644 --- a/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php +++ b/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php @@ -73,7 +73,7 @@ public function getIds() { /** * {@inheritdoc} */ - public function count($refresh = FALSE) { + protected function doCount() { return $this->initializeIterator()->count(); } -- GitLab