Unverified Commit 76b65d73 authored by Marco Pivetta's avatar Marco Pivetta

Merge branch 'fix/#2686-#889-fix-oracle-check-for-constraint-and-index-name-equality' into 2.5

Close #2686
Close #889
parents 6cc34f14 a48c676d
...@@ -443,7 +443,7 @@ class OraclePlatform extends AbstractPlatform ...@@ -443,7 +443,7 @@ class OraclePlatform extends AbstractPlatform
( (
SELECT ucon.constraint_type SELECT ucon.constraint_type
FROM user_constraints ucon FROM user_constraints ucon
WHERE ucon.constraint_name = uind_col.index_name WHERE ucon.index_name = uind_col.index_name
) AS is_primary ) AS is_primary
FROM user_ind_columns uind_col FROM user_ind_columns uind_col
WHERE uind_col.table_name = " . $table . " WHERE uind_col.table_name = " . $table . "
......
...@@ -234,6 +234,29 @@ class OracleSchemaManagerTest extends SchemaManagerFunctionalTestCase ...@@ -234,6 +234,29 @@ class OracleSchemaManagerTest extends SchemaManagerFunctionalTestCase
$this->assertCount(7, $columns); $this->assertCount(7, $columns);
} }
/**
* @group DBAL-1234
*/
public function testListTableIndexesPrimaryKeyConstraintNameDiffersFromIndexName()
{
$table = new Table('list_table_indexes_pk_id_test');
$table->setSchemaConfig($this->_sm->createSchemaConfig());
$table->addColumn('id', 'integer', array('notnull' => true));
$table->addUniqueIndex(array('id'), 'id_unique_index');
$this->_sm->dropAndCreateTable($table);
// Adding a primary key on already indexed columns
// Oracle will reuse the unique index, which cause a constraint name differing from the index name
$this->_sm->createConstraint(new Schema\Index('id_pk_id_index', array('id'), true, true), 'list_table_indexes_pk_id_test');
$tableIndexes = $this->_sm->listTableIndexes('list_table_indexes_pk_id_test');
$this->assertArrayHasKey('primary', $tableIndexes, 'listTableIndexes() has to return a "primary" array key.');
$this->assertEquals(array('id'), array_map('strtolower', $tableIndexes['primary']->getColumns()));
$this->assertTrue($tableIndexes['primary']->isUnique());
$this->assertTrue($tableIndexes['primary']->isPrimary());
}
/** /**
* @group DBAL-2555 * @group DBAL-2555
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment