Commit 27d33238 authored by Marco Pivetta's avatar Marco Pivetta Committed by GitHub

Merge pull request #2286 from deeky666/fix-mysql-list-fk-db-evaluation

Fix list foreign keys SQL database parameter evaluation
parents e4c143f0 f223b0b8
......@@ -200,10 +200,7 @@ class MySqlPlatform extends AbstractPlatform
" c.constraint_name = k.constraint_name AND ".
" c.table_name = $table */ WHERE k.table_name = $table";
// @TODO: This needs fixing. The condition has to be inverted.
// When fixed, AbstractMySQLPlatformTestCase::testQuotesDatabaseNameInListTableForeignKeysSQL test
// has to be completed.
$databaseNameSql = null === $database ? $database : 'DATABASE()';
$databaseNameSql = null === $database ? 'DATABASE()' : $database;
$sql .= " AND k.table_schema = $databaseNameSql /*!50116 AND c.constraint_schema = $databaseNameSql */";
$sql .= " AND k.`REFERENCED_COLUMN_NAME` is not NULL";
......
......@@ -415,7 +415,7 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase
$sql = $this->_platform->getAlterTableSQL($diff);
$this->assertEquals(array(
"ALTER TABLE mytable DROP PRIMARY KEY",
"ALTER TABLE mytable DROP PRIMARY KEY",
"ALTER TABLE mytable ADD PRIMARY KEY (foo)",
), $sql);
}
......@@ -799,8 +799,6 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase
*/
public function testQuotesDatabaseNameInListTableForeignKeysSQL()
{
$this->markTestIncomplete('Test does not work due to a bug in MySqlplatform::getListTableForeignKeysSQL');
$this->assertContains("'Foo''Bar\\\\'", $this->_platform->getListTableForeignKeysSQL('foo_table', "Foo'Bar\\"), '', true);
}
......@@ -819,4 +817,16 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase
{
$this->assertContains("'Foo''Bar\\\\'", $this->_platform->getListTableColumnsSQL('foo_table', "Foo'Bar\\"), '', true);
}
public function testListTableForeignKeysSQLEvaluatesDatabase()
{
$sql = $this->_platform->getListTableForeignKeysSQL('foo');
$this->assertContains('DATABASE()', $sql);
$sql = $this->_platform->getListTableForeignKeysSQL('foo', 'bar');
$this->assertContains('bar', $sql);
$this->assertNotContains('DATABASE()', $sql);
}
}
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