diff --git a/app/code/Magento/Catalog/Helper/Product/Flat/Indexer.php b/app/code/Magento/Catalog/Helper/Product/Flat/Indexer.php index 040200f536243..9ae1ca79d839d 100644 --- a/app/code/Magento/Catalog/Helper/Product/Flat/Indexer.php +++ b/app/code/Magento/Catalog/Helper/Product/Flat/Indexer.php @@ -246,7 +246,7 @@ public function isAddChildData() public function getFlatColumns() { if ($this->_columns === null) { - $this->_columns = $this->getFlatColumnsDdlDefinition(); + $columnsPerAttribute = [$this->getFlatColumnsDdlDefinition()]; foreach ($this->getAttributes() as $attribute) { /** @var $attribute \Magento\Eav\Model\Entity\Attribute\AbstractAttribute */ $columns = $attribute->setFlatAddFilterableAttributes( @@ -255,10 +255,10 @@ public function getFlatColumns() $this->isAddChildData() )->getFlatColumns(); if ($columns !== null) { - // phpcs:ignore Magento2.Performance.ForeachArrayMerge - $this->_columns = array_merge($this->_columns, $columns); + $columnsPerAttribute[] = $columns; } } + $this->_columns = array_merge(...$columnsPerAttribute); } return $this->_columns; } @@ -409,6 +409,7 @@ public function getFlatIndexes() 'fields' => ['attribute_set_id'], ]; + $indexesPerAttribute = [$this->_indexes]; foreach ($this->getAttributes() as $attribute) { /** @var $attribute \Magento\Eav\Model\Entity\Attribute */ $indexes = $attribute->setFlatAddFilterableAttributes( @@ -417,10 +418,10 @@ public function getFlatIndexes() $this->isAddChildData() )->getFlatIndexes(); if ($indexes !== null) { - // phpcs:ignore Magento2.Performance.ForeachArrayMerge - $this->_indexes = array_merge($this->_indexes, $indexes); + $indexesPerAttribute[] = $indexes; } } + $this->_indexes = array_merge(...$indexesPerAttribute); } return $this->_indexes; }