Skip to content

Commit 5750f56

Browse files
committed
MC-37630: Updating Design Configuration runs full reindex which generates DDL statement DROP Table
1 parent e5610d8 commit 5750f56

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

app/code/Magento/Theme/Model/Indexer/Design/IndexerHandler.php

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Magento\Theme\Model\Indexer\Design;
1010

1111
use Magento\Framework\App\ResourceConnection;
12+
use Magento\Framework\DB\Adapter\AdapterInterface;
1213
use Magento\Framework\Indexer\IndexStructureInterface;
1314
use Magento\Framework\Indexer\SaveHandler\Batch;
1415
use Magento\Framework\Indexer\SaveHandler\Grid;
@@ -22,51 +23,53 @@ class IndexerHandler extends Grid
2223
*/
2324
private $flatScopeResolver;
2425

26+
/**
27+
* @param IndexStructureInterface $indexStructure
28+
* @param ResourceConnection $resource
29+
* @param Batch $batch
30+
* @param IndexScopeResolver $indexScopeResolver
31+
* @param FlatScopeResolver $flatScopeResolver
32+
* @param array $data
33+
* @param int $batchSize
34+
*/
2535
public function __construct(
2636
IndexStructureInterface $indexStructure,
2737
ResourceConnection $resource,
2838
Batch $batch,
2939
IndexScopeResolver $indexScopeResolver,
3040
FlatScopeResolver $flatScopeResolver,
3141
array $data,
32-
$batchSize = 100)
33-
{
42+
$batchSize = 100
43+
) {
3444
parent::__construct(
3545
$indexStructure,
3646
$resource,
3747
$batch,
3848
$indexScopeResolver,
3949
$flatScopeResolver,
4050
$data,
41-
$batchSize);
51+
$batchSize
52+
);
4253

4354
$this->flatScopeResolver = $flatScopeResolver;
4455
}
4556

4657
/**
47-
* @return bool
48-
*/
49-
private function isFlatTableExists()
50-
{
51-
$adapter = $this->resource->getConnection('write');
52-
$tableName = $this->flatScopeResolver->resolve($this->getIndexName(), []);
53-
54-
return $adapter->isTableExists($tableName);
55-
}
56-
57-
/**
58-
* Clean index table by deleting all records
58+
* Clean index table by deleting all records unconditionally or create the index table if not exists
5959
*
60-
* @inheritdoc
60+
* @param $dimensions
61+
* @return IndexerHandler
6162
*/
6263
public function cleanIndex($dimensions)
6364
{
64-
if ($this->isFlatTableExists()) {
65-
$adapter = $this->resource->getConnection('write');
66-
$tableName = $this->flatScopeResolver->resolve($this->getIndexName(), $dimensions);
67-
$adapter->delete($tableName);
65+
$tableName = $this->flatScopeResolver->resolve($this->getIndexName(), $dimensions);
66+
67+
if ($this->connection->isTableExists($tableName)) {
68+
$this->connection->delete($tableName);
6869
} else {
6970
$this->indexStructure->create($this->getIndexName(), $this->fields, $dimensions);
7071
}
72+
73+
return $this;
7174
}
7275
}

0 commit comments

Comments
 (0)