Commit bc85f142 authored by Marco Pivetta's avatar Marco Pivetta

Merge branch 'fix/#2286-foreign-keys-sql-database-parameter-evaluation' into 2.5

Close #2286
parents 4bca2264 b5d8f7b8
...@@ -194,10 +194,7 @@ class MySqlPlatform extends AbstractPlatform ...@@ -194,10 +194,7 @@ class MySqlPlatform extends AbstractPlatform
" c.constraint_name = k.constraint_name AND ". " c.constraint_name = k.constraint_name AND ".
" c.table_name = $table */ WHERE k.table_name = $table"; " c.table_name = $table */ WHERE k.table_name = $table";
// @TODO: This needs fixing. The condition has to be inverted. $databaseNameSql = null === $database ? 'DATABASE()' : $database;
// When fixed, AbstractMySQLPlatformTestCase::testQuotesDatabaseNameInListTableForeignKeysSQL test
// has to be completed.
$databaseNameSql = null === $database ? $database : 'DATABASE()';
$sql .= " AND k.table_schema = $databaseNameSql /*!50116 AND c.constraint_schema = $databaseNameSql */"; $sql .= " AND k.table_schema = $databaseNameSql /*!50116 AND c.constraint_schema = $databaseNameSql */";
$sql .= " AND k.`REFERENCED_COLUMN_NAME` is not NULL"; $sql .= " AND k.`REFERENCED_COLUMN_NAME` is not NULL";
......
...@@ -415,7 +415,7 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase ...@@ -415,7 +415,7 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase
$sql = $this->_platform->getAlterTableSQL($diff); $sql = $this->_platform->getAlterTableSQL($diff);
$this->assertEquals(array( $this->assertEquals(array(
"ALTER TABLE mytable DROP PRIMARY KEY", "ALTER TABLE mytable DROP PRIMARY KEY",
"ALTER TABLE mytable ADD PRIMARY KEY (foo)", "ALTER TABLE mytable ADD PRIMARY KEY (foo)",
), $sql); ), $sql);
} }
...@@ -799,8 +799,6 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase ...@@ -799,8 +799,6 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase
*/ */
public function testQuotesDatabaseNameInListTableForeignKeysSQL() 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); $this->assertContains("'Foo''Bar\\\\'", $this->_platform->getListTableForeignKeysSQL('foo_table', "Foo'Bar\\"), '', true);
} }
...@@ -819,4 +817,16 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase ...@@ -819,4 +817,16 @@ abstract class AbstractMySQLPlatformTestCase extends AbstractPlatformTestCase
{ {
$this->assertContains("'Foo''Bar\\\\'", $this->_platform->getListTableColumnsSQL('foo_table', "Foo'Bar\\"), '', true); $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