@@ -228,22 +228,26 @@ public function compareTables(Table $oldTable, Table $newTable): TableDiff
228228 $ newIndexes = $ newTable ->getIndexes ();
229229
230230 // See if all the indexes from the old table exist in the new one
231- foreach ($ newIndexes as $ newIndexName => $ newIndex ) {
231+ foreach ($ newIndexes as $ newIndex ) {
232+ $ newIndexName = $ newIndex ->getName ();
233+
232234 if (($ newIndex ->isPrimary () && $ oldTable ->getPrimaryKey () !== null ) || $ oldTable ->hasIndex ($ newIndexName )) {
233235 continue ;
234236 }
235237
236- $ addedIndexes [$ newIndexName ] = $ newIndex ;
238+ $ addedIndexes [] = $ newIndex ;
237239 }
238240
239241 // See if there are any removed indexes in the new table
240- foreach ($ oldIndexes as $ oldIndexName => $ oldIndex ) {
242+ foreach ($ oldIndexes as $ oldIndex ) {
243+ $ oldIndexName = $ oldIndex ->getName ();
244+
241245 // See if the index is removed in the new table.
242246 if (
243247 ($ oldIndex ->isPrimary () && $ newTable ->getPrimaryKey () === null ) ||
244248 ! $ oldIndex ->isPrimary () && ! $ newTable ->hasIndex ($ oldIndexName )
245249 ) {
246- $ droppedIndexes [$ oldIndexName ] = $ oldIndex ;
250+ $ droppedIndexes [] = $ oldIndex ;
247251
248252 continue ;
249253 }
@@ -259,8 +263,8 @@ public function compareTables(Table $oldTable, Table $newTable): TableDiff
259263 if ($ shouldReportModifiedIndexes ) {
260264 $ modifiedIndexes [] = $ newIndex ;
261265 } else {
262- $ droppedIndexes [$ oldIndexName ] = $ oldIndex ;
263- $ addedIndexes [$ oldIndexName ] = $ newIndex ;
266+ $ droppedIndexes [] = $ oldIndex ;
267+ $ addedIndexes [] = $ newIndex ;
264268 }
265269 }
266270
@@ -359,8 +363,8 @@ private function detectRenamedColumns(array &$modifiedColumns, array &$addedColu
359363 * Try to find indexes that only changed their name, rename operations maybe cheaper than add/drop
360364 * however ambiguities between different possibilities should not lead to renaming at all.
361365 *
362- * @param array<string, Index> $addedIndexes
363- * @param array<string, Index> $removedIndexes
366+ * @param array<Index> $addedIndexes
367+ * @param array<Index> $removedIndexes
364368 *
365369 * @return array<string,Index>
366370 */
@@ -369,13 +373,13 @@ private function detectRenamedIndexes(array &$addedIndexes, array &$removedIndex
369373 $ candidatesByName = [];
370374
371375 // Gather possible rename candidates by comparing each added and removed index based on semantics.
372- foreach ($ addedIndexes as $ addedIndexName => $ addedIndex ) {
373- foreach ($ removedIndexes as $ removedIndex ) {
376+ foreach ($ addedIndexes as $ addedIndexKey => $ addedIndex ) {
377+ foreach ($ removedIndexes as $ removedIndexKey => $ removedIndex ) {
374378 if ($ this ->diffIndex ($ addedIndex , $ removedIndex )) {
375379 continue ;
376380 }
377381
378- $ candidatesByName [$ addedIndex ->getName ()][] = [$ removedIndex , $ addedIndex , $ addedIndexName ];
382+ $ candidatesByName [$ addedIndex ->getName ()][] = [$ removedIndexKey , $ addedIndexKey ];
379383 }
380384 }
381385
@@ -390,19 +394,21 @@ private function detectRenamedIndexes(array &$addedIndexes, array &$removedIndex
390394 continue ;
391395 }
392396
393- [$ removedIndex , $ addedIndex ] = $ candidates [0 ];
397+ [$ removedIndexKey , $ addedIndexKey ] = $ candidates [0 ];
394398
399+ $ removedIndex = $ removedIndexes [$ removedIndexKey ];
395400 $ removedIndexName = strtolower ($ removedIndex ->getName ());
396- $ addedIndexName = strtolower ($ addedIndex ->getName ());
397401
398402 if (isset ($ renamedIndexes [$ removedIndexName ])) {
399403 continue ;
400404 }
401405
406+ $ addedIndex = $ addedIndexes [$ addedIndexKey ];
407+
402408 $ renamedIndexes [$ removedIndexName ] = $ addedIndex ;
403409 unset(
404- $ addedIndexes [$ addedIndexName ],
405- $ removedIndexes [$ removedIndexName ],
410+ $ addedIndexes [$ addedIndexKey ],
411+ $ removedIndexes [$ removedIndexKey ],
406412 );
407413 }
408414
0 commit comments