@@ -2,7 +2,6 @@ |
||
| 2 | 2 | |
| 3 | 3 | namespace Doctrine\Tests\ORM\Performance; |
| 4 | 4 | |
| 5 | -use Doctrine\ORM\Query; |
|
| 6 | 5 | use Doctrine\Tests\Models\CMS\CmsUser; |
| 7 | 6 | use Doctrine\Tests\Models\CMS\CmsGroup; |
| 8 | 7 | use Doctrine\Tests\Models\CMS\CmsArticle; |
@@ -7,7 +7,6 @@ |
||
| 7 | 7 | use Doctrine\DBAL\Types\Type as DBALType; |
| 8 | 8 | use Doctrine\ORM\Persisters\Entity\BasicEntityPersister; |
| 9 | 9 | use Doctrine\Tests\Models\CustomType\CustomTypeChild; |
| 10 | -use Doctrine\Tests\Models\CustomType\CustomTypeFriend; |
|
| 11 | 10 | use Doctrine\Tests\Models\CustomType\CustomTypeParent; |
| 12 | 11 | use Doctrine\Tests\Models\Generic\NonAlphaColumnsEntity; |
| 13 | 12 | use Doctrine\Tests\OrmTestCase; |
@@ -38,6 +38,10 @@ |
||
| 38 | 38 | return $query->getSql(); |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | + /** |
|
| 42 | + * @param string $dqlToBeTested |
|
| 43 | + * @param string $sqlToBeConfirmed |
|
| 44 | + */ |
|
| 41 | 45 | public function assertSqlGeneration($dqlToBeTested, $sqlToBeConfirmed, $treeWalkers = [], $outputWalker = null) |
| 42 | 46 | { |
| 43 | 47 | try { |
@@ -4,7 +4,6 @@ |
||
| 4 | 4 | |
| 5 | 5 | use Doctrine\Common\Cache\ArrayCache; |
| 6 | 6 | use Doctrine\Common\Collections\ArrayCollection; |
| 7 | - |
|
| 8 | 7 | use Doctrine\ORM\EntityManager; |
| 9 | 8 | use Doctrine\ORM\Query\Parameter; |
| 10 | 9 | use Doctrine\Tests\Mocks\DriverConnectionMock; |
@@ -43,6 +43,10 @@ |
||
| 43 | 43 | $this->_em = $this->_getTestEntityManager(); |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | + /** |
|
| 47 | + * @param string $dqlToBeTested |
|
| 48 | + * @param string $sqlToBeConfirmed |
|
| 49 | + */ |
|
| 46 | 50 | public function assertSqlGeneration($dqlToBeTested, $sqlToBeConfirmed) |
| 47 | 51 | { |
| 48 | 52 | try { |
@@ -35,6 +35,9 @@ |
||
| 35 | 35 | $this->_em = $this->_getTestEntityManager(); |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | + /** |
|
| 39 | + * @param string $expectedDql |
|
| 40 | + */ |
|
| 38 | 41 | protected function assertValidQueryBuilder(QueryBuilder $qb, $expectedDql) |
| 39 | 42 | { |
| 40 | 43 | $dql = $qb->getDQL(); |
@@ -48,6 +48,9 @@ discard block |
||
| 48 | 48 | return EntityManagerMock::create($conn, $config, $eventManager); |
| 49 | 49 | } |
| 50 | 50 | |
| 51 | + /** |
|
| 52 | + * @param string $path |
|
| 53 | + */ |
|
| 51 | 54 | protected function _createMetadataDriver($type, $path) |
| 52 | 55 | { |
| 53 | 56 | $mappingDriver = [ |
@@ -67,6 +70,9 @@ discard block |
||
| 67 | 70 | return $driver; |
| 68 | 71 | } |
| 69 | 72 | |
| 73 | + /** |
|
| 74 | + * @param EntityManagerMock $em |
|
| 75 | + */ |
|
| 70 | 76 | protected function _createClassMetadataFactory($em, $type) |
| 71 | 77 | { |
| 72 | 78 | $factory = ($type === 'annotation') |
@@ -277,7 +283,6 @@ discard block |
||
| 277 | 283 | |
| 278 | 284 | /** |
| 279 | 285 | * @depends testOneToManyAssociationsAreExported |
| 280 | - * @param ClassMetadataInfo $metadata |
|
| 281 | 286 | */ |
| 282 | 287 | public function testManyToManyAssociationsAreExported($class) |
| 283 | 288 | { |
@@ -376,6 +381,9 @@ discard block |
||
| 376 | 381 | # $this->_deleteDirectory(__DIR__ . '/export/'.$this->_getType()); |
| 377 | 382 | } |
| 378 | 383 | |
| 384 | + /** |
|
| 385 | + * @param string $path |
|
| 386 | + */ |
|
| 379 | 387 | protected function _deleteDirectory($path) |
| 380 | 388 | { |
| 381 | 389 | if (is_file($path)) { |
@@ -88,8 +88,8 @@ discard block |
||
| 88 | 88 | // 1. Create an INSERT INTO temptable ... SELECT identifiers WHERE $AST->getWhereClause() |
| 89 | 89 | $sqlWalker->setSQLTableAlias($primaryClass->getTableName(), 't0', $updateClause->aliasIdentificationVariable); |
| 90 | 90 | |
| 91 | - $this->_insertSql = 'INSERT INTO ' . $tempTable . ' (' . $idColumnList . ')' |
|
| 92 | - . ' SELECT t0.' . implode(', t0.', $idColumnNames); |
|
| 91 | + $this->_insertSql = 'INSERT INTO '.$tempTable.' ('.$idColumnList.')' |
|
| 92 | + . ' SELECT t0.'.implode(', t0.', $idColumnNames); |
|
| 93 | 93 | |
| 94 | 94 | $rangeDecl = new AST\RangeVariableDeclaration($primaryClass->name, $updateClause->aliasIdentificationVariable); |
| 95 | 95 | $fromClause = new AST\FromClause([new AST\IdentificationVariableDeclaration($rangeDecl, null, [])]); |
@@ -97,7 +97,7 @@ discard block |
||
| 97 | 97 | $this->_insertSql .= $sqlWalker->walkFromClause($fromClause); |
| 98 | 98 | |
| 99 | 99 | // 2. Create ID subselect statement used in UPDATE ... WHERE ... IN (subselect) |
| 100 | - $idSubselect = 'SELECT ' . $idColumnList . ' FROM ' . $tempTable; |
|
| 100 | + $idSubselect = 'SELECT '.$idColumnList.' FROM '.$tempTable; |
|
| 101 | 101 | |
| 102 | 102 | // 3. Create and store UPDATE statements |
| 103 | 103 | $classNames = array_merge($primaryClass->parentClasses, [$primaryClass->name], $primaryClass->subClasses); |
@@ -106,7 +106,7 @@ discard block |
||
| 106 | 106 | foreach (array_reverse($classNames) as $className) { |
| 107 | 107 | $affected = false; |
| 108 | 108 | $class = $em->getClassMetadata($className); |
| 109 | - $updateSql = 'UPDATE ' . $quoteStrategy->getTableName($class, $platform) . ' SET '; |
|
| 109 | + $updateSql = 'UPDATE '.$quoteStrategy->getTableName($class, $platform).' SET '; |
|
| 110 | 110 | |
| 111 | 111 | foreach ($updateItems as $updateItem) { |
| 112 | 112 | $field = $updateItem->pathExpression->field; |
@@ -133,7 +133,7 @@ discard block |
||
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | if ($affected) { |
| 136 | - $this->_sqlStatements[$i] = $updateSql . ' WHERE (' . $idColumnList . ') IN (' . $idSubselect . ')'; |
|
| 136 | + $this->_sqlStatements[$i] = $updateSql.' WHERE ('.$idColumnList.') IN ('.$idSubselect.')'; |
|
| 137 | 137 | } |
| 138 | 138 | } |
| 139 | 139 | |
@@ -152,8 +152,8 @@ discard block |
||
| 152 | 152 | ]; |
| 153 | 153 | } |
| 154 | 154 | |
| 155 | - $this->_createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL() . ' ' . $tempTable . ' (' |
|
| 156 | - . $platform->getColumnDeclarationListSQL($columnDefinitions) . ')'; |
|
| 155 | + $this->_createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL().' '.$tempTable.' (' |
|
| 156 | + . $platform->getColumnDeclarationListSQL($columnDefinitions).')'; |
|
| 157 | 157 | |
| 158 | 158 | $this->_dropTempTableSql = $platform->getDropTemporaryTableSQL($tempTable); |
| 159 | 159 | } |
@@ -77,8 +77,8 @@ discard block |
||
| 77 | 77 | // 1. Create an INSERT INTO temptable ... SELECT identifiers WHERE $AST->getWhereClause() |
| 78 | 78 | $sqlWalker->setSQLTableAlias($primaryClass->getTableName(), 't0', $primaryDqlAlias); |
| 79 | 79 | |
| 80 | - $this->_insertSql = 'INSERT INTO ' . $tempTable . ' (' . $idColumnList . ')' |
|
| 81 | - . ' SELECT t0.' . implode(', t0.', $idColumnNames); |
|
| 80 | + $this->_insertSql = 'INSERT INTO '.$tempTable.' ('.$idColumnList.')' |
|
| 81 | + . ' SELECT t0.'.implode(', t0.', $idColumnNames); |
|
| 82 | 82 | |
| 83 | 83 | $rangeDecl = new AST\RangeVariableDeclaration($primaryClass->name, $primaryDqlAlias); |
| 84 | 84 | $fromClause = new AST\FromClause([new AST\IdentificationVariableDeclaration($rangeDecl, null, [])]); |
@@ -90,14 +90,14 @@ discard block |
||
| 90 | 90 | } |
| 91 | 91 | |
| 92 | 92 | // 2. Create ID subselect statement used in DELETE ... WHERE ... IN (subselect) |
| 93 | - $idSubselect = 'SELECT ' . $idColumnList . ' FROM ' . $tempTable; |
|
| 93 | + $idSubselect = 'SELECT '.$idColumnList.' FROM '.$tempTable; |
|
| 94 | 94 | |
| 95 | 95 | // 3. Create and store DELETE statements |
| 96 | 96 | $classNames = array_merge($primaryClass->parentClasses, [$primaryClass->name], $primaryClass->subClasses); |
| 97 | 97 | foreach (array_reverse($classNames) as $className) { |
| 98 | 98 | $tableName = $quoteStrategy->getTableName($em->getClassMetadata($className), $platform); |
| 99 | - $this->_sqlStatements[] = 'DELETE FROM ' . $tableName |
|
| 100 | - . ' WHERE (' . $idColumnList . ') IN (' . $idSubselect . ')'; |
|
| 99 | + $this->_sqlStatements[] = 'DELETE FROM '.$tableName |
|
| 100 | + . ' WHERE ('.$idColumnList.') IN ('.$idSubselect.')'; |
|
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | // 4. Store DDL for temporary identifier table. |
@@ -108,8 +108,8 @@ discard block |
||
| 108 | 108 | 'type' => Type::getType(PersisterHelper::getTypeOfColumn($idColumnName, $rootClass, $em)), |
| 109 | 109 | ]; |
| 110 | 110 | } |
| 111 | - $this->_createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL() . ' ' . $tempTable . ' (' |
|
| 112 | - . $platform->getColumnDeclarationListSQL($columnDefinitions) . ')'; |
|
| 111 | + $this->_createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL().' '.$tempTable.' (' |
|
| 112 | + . $platform->getColumnDeclarationListSQL($columnDefinitions).')'; |
|
| 113 | 113 | $this->_dropTempTableSql = $platform->getDropTemporaryTableSQL($tempTable); |
| 114 | 114 | } |
| 115 | 115 | |