From 7efe071ac48fe62d5c78a377425f3f5995d9e0ab Mon Sep 17 00:00:00 2001 From: Benjamin Eberlei Date: Sun, 26 Jun 2011 10:10:57 +0200 Subject: [PATCH] DDC-1224 - Bugfix with temporary table ids and tables in schema (in postgresql) --- lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php | 3 ++- .../Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index c1f25a828..7c5cf8d26 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -1271,7 +1271,8 @@ class ClassMetadataInfo implements ClassMetadata */ public function getTemporaryIdTableName() { - return $this->table['name'] . '_id_tmp'; + // replace dots with underscores because PostgreSQL creates temporary tables in a special schema + return str_replace('.', '_', $this->table['name'] . '_id_tmp'); } /** diff --git a/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php b/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php index 8f57280df..bcf4df543 100644 --- a/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php +++ b/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php @@ -236,6 +236,17 @@ class ClassMetadataTest extends \Doctrine\Tests\OrmTestCase $this->setExpectedException('Doctrine\ORM\Mapping\MappingException'); $cm->mapField(array('fieldName' => 'name', 'columnName' => 'name')); } + + /** + * @group DDC-1224 + */ + public function testGetTemporaryTableNameSchema() + { + $cm = new ClassMetadata('Doctrine\Tests\Models\CMS\CmsUser'); + $cm->setTableName('foo.bar'); + + $this->assertEquals('foo_bar_id_tmp', $cm->getTemporaryIdTableName()); + } public function testDefaultTableName() {