Skip to content

Commit 891198c

Browse files
author
nikunj
committed
#21853: Allow mview indexers to use different entity columns.
1 parent 0e8428c commit 891198c

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

lib/internal/Magento/Framework/Mview/View/Subscription.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,19 @@ public function create()
117117

118118
// Add statements for linked views
119119
foreach ($this->getLinkedViews() as $view) {
120+
// Store current column name for reverting back later.
121+
$originalColumnName = $this->getColumnName();
122+
120123
/** @var \Magento\Framework\Mview\ViewInterface $view */
124+
// Use the column name from specific subscription instead of
125+
// use from the one which is currently updated.
126+
$subscriptions = $view->getSubscriptions();
127+
$subscription = $subscriptions[$this->getTableName()];
128+
$this->columnName = $subscription['column'];
121129
$trigger->addStatement($this->buildStatement($event, $view->getChangelog()));
130+
131+
// Revert back the column name.
132+
$this->columnName = $originalColumnName;
122133
}
123134

124135
$this->connection->dropTrigger($trigger->getName());
@@ -146,8 +157,19 @@ public function remove()
146157

147158
// Add statements for linked views
148159
foreach ($this->getLinkedViews() as $view) {
160+
// Store current column name for reverting back later.
161+
$originalColumnName = $this->columnName;
162+
149163
/** @var \Magento\Framework\Mview\ViewInterface $view */
164+
// Use the column name from specific subscription instead of
165+
// use from the one which is currently updated.
166+
$subscriptions = $view->getSubscriptions();
167+
$subscription = $subscriptions[$this->getTableName()];
168+
$this->columnName = $subscription['column'];
150169
$trigger->addStatement($this->buildStatement($event, $view->getChangelog()));
170+
171+
// Revert back the column name.
172+
$this->columnName = $originalColumnName;
151173
}
152174

153175
$this->connection->dropTrigger($trigger->getName());

0 commit comments

Comments
 (0)