|
@@ 386-400 (lines=15) @@
|
| 383 |
|
/** |
| 384 |
|
* @group DBAL-1063 |
| 385 |
|
*/ |
| 386 |
|
public function testAddForeignKeyDoesNotCreateDuplicateIndex() : void |
| 387 |
|
{ |
| 388 |
|
$table = new Table('foo'); |
| 389 |
|
$table->addColumn('bar', 'integer'); |
| 390 |
|
$table->addIndex(['bar'], 'bar_idx'); |
| 391 |
|
|
| 392 |
|
$foreignTable = new Table('bar'); |
| 393 |
|
$foreignTable->addColumn('foo', 'integer'); |
| 394 |
|
|
| 395 |
|
$table->addForeignKeyConstraint($foreignTable, ['bar'], ['foo']); |
| 396 |
|
|
| 397 |
|
self::assertCount(1, $table->getIndexes()); |
| 398 |
|
self::assertTrue($table->hasIndex('bar_idx')); |
| 399 |
|
self::assertSame(['bar'], $table->getIndex('bar_idx')->getColumns()); |
| 400 |
|
} |
| 401 |
|
|
| 402 |
|
/** |
| 403 |
|
* @group DBAL-1063 |
|
@@ 502-517 (lines=16) @@
|
| 499 |
|
self::assertTrue($table->hasIndex('idx_unique')); |
| 500 |
|
} |
| 501 |
|
|
| 502 |
|
public function testAddingFulfillingRegularIndexOverridesImplicitForeignKeyConstraintIndex() : void |
| 503 |
|
{ |
| 504 |
|
$foreignTable = new Table('foreign'); |
| 505 |
|
$foreignTable->addColumn('id', 'integer'); |
| 506 |
|
|
| 507 |
|
$localTable = new Table('local'); |
| 508 |
|
$localTable->addColumn('id', 'integer'); |
| 509 |
|
$localTable->addForeignKeyConstraint($foreignTable, ['id'], ['id']); |
| 510 |
|
|
| 511 |
|
self::assertCount(1, $localTable->getIndexes()); |
| 512 |
|
|
| 513 |
|
$localTable->addIndex(['id'], 'explicit_idx'); |
| 514 |
|
|
| 515 |
|
self::assertCount(1, $localTable->getIndexes()); |
| 516 |
|
self::assertTrue($localTable->hasIndex('explicit_idx')); |
| 517 |
|
} |
| 518 |
|
|
| 519 |
|
public function testAddingFulfillingUniqueIndexOverridesImplicitForeignKeyConstraintIndex() : void |
| 520 |
|
{ |
|
@@ 519-534 (lines=16) @@
|
| 516 |
|
self::assertTrue($localTable->hasIndex('explicit_idx')); |
| 517 |
|
} |
| 518 |
|
|
| 519 |
|
public function testAddingFulfillingUniqueIndexOverridesImplicitForeignKeyConstraintIndex() : void |
| 520 |
|
{ |
| 521 |
|
$foreignTable = new Table('foreign'); |
| 522 |
|
$foreignTable->addColumn('id', 'integer'); |
| 523 |
|
|
| 524 |
|
$localTable = new Table('local'); |
| 525 |
|
$localTable->addColumn('id', 'integer'); |
| 526 |
|
$localTable->addForeignKeyConstraint($foreignTable, ['id'], ['id']); |
| 527 |
|
|
| 528 |
|
self::assertCount(1, $localTable->getIndexes()); |
| 529 |
|
|
| 530 |
|
$localTable->addUniqueIndex(['id'], 'explicit_idx'); |
| 531 |
|
|
| 532 |
|
self::assertCount(1, $localTable->getIndexes()); |
| 533 |
|
self::assertTrue($localTable->hasIndex('explicit_idx')); |
| 534 |
|
} |
| 535 |
|
|
| 536 |
|
public function testAddingFulfillingPrimaryKeyOverridesImplicitForeignKeyConstraintIndex() : void |
| 537 |
|
{ |
|
@@ 536-551 (lines=16) @@
|
| 533 |
|
self::assertTrue($localTable->hasIndex('explicit_idx')); |
| 534 |
|
} |
| 535 |
|
|
| 536 |
|
public function testAddingFulfillingPrimaryKeyOverridesImplicitForeignKeyConstraintIndex() : void |
| 537 |
|
{ |
| 538 |
|
$foreignTable = new Table('foreign'); |
| 539 |
|
$foreignTable->addColumn('id', 'integer'); |
| 540 |
|
|
| 541 |
|
$localTable = new Table('local'); |
| 542 |
|
$localTable->addColumn('id', 'integer'); |
| 543 |
|
$localTable->addForeignKeyConstraint($foreignTable, ['id'], ['id']); |
| 544 |
|
|
| 545 |
|
self::assertCount(1, $localTable->getIndexes()); |
| 546 |
|
|
| 547 |
|
$localTable->setPrimaryKey(['id'], 'explicit_idx'); |
| 548 |
|
|
| 549 |
|
self::assertCount(1, $localTable->getIndexes()); |
| 550 |
|
self::assertTrue($localTable->hasIndex('explicit_idx')); |
| 551 |
|
} |
| 552 |
|
|
| 553 |
|
public function testAddingFulfillingExplicitIndexOverridingImplicitForeignKeyConstraintIndexWithSameNameDoesNotThrowException() : void |
| 554 |
|
{ |