Code Duplication    Length = 26-26 lines in 2 locations

lib/Doctrine/ORM/Query/SqlWalker.php 2 locations

@@ 1371-1396 (lines=26) @@
1368
                $sqlParts = [];
1369
1370
                // Select all fields from the queried class
1371
                foreach ($class->fieldMappings as $fieldName => $mapping) {
1372
                    if ($partialFieldSet && ! in_array($fieldName, $partialFieldSet)) {
1373
                        continue;
1374
                    }
1375
1376
                    $tableName = (isset($mapping['inherited']))
1377
                        ? $this->em->getClassMetadata($mapping['inherited'])->getTableName()
1378
                        : $class->getTableName();
1379
1380
                    $sqlTableAlias    = $this->getSQLTableAlias($tableName, $dqlAlias);
1381
                    $columnAlias      = $this->getSQLColumnAlias($mapping['columnName']);
1382
                    $quotedColumnName = $this->quoteStrategy->getColumnName($fieldName, $class, $this->platform);
1383
1384
                    $col = $sqlTableAlias . '.' . $quotedColumnName;
1385
1386
                    if (isset($mapping['requireSQLConversion'])) {
1387
                        $type = Type::getType($mapping['type']);
1388
                        $col = $type->convertToPHPValueSQL($col, $this->platform);
1389
                    }
1390
1391
                    $sqlParts[] = $col . ' AS '. $columnAlias;
1392
1393
                    $this->scalarResultAliasMap[$resultAlias][] = $columnAlias;
1394
1395
                    $this->rsm->addFieldResult($dqlAlias, $columnAlias, $fieldName, $class->name);
1396
                }
1397
1398
                // Add any additional fields of subclasses (excluding inherited fields)
1399
                // 1) on Single Table Inheritance: always, since its marginal overhead
@@ 1403-1428 (lines=26) @@
1400
                // 2) on Class Table Inheritance only if partial objects are disallowed,
1401
                //    since it requires outer joining subtables.
1402
                if ($class->isInheritanceTypeSingleTable() || ! $this->query->getHint(Query::HINT_FORCE_PARTIAL_LOAD)) {
1403
                    foreach ($class->subClasses as $subClassName) {
1404
                        $subClass      = $this->em->getClassMetadata($subClassName);
1405
                        $sqlTableAlias = $this->getSQLTableAlias($subClass->getTableName(), $dqlAlias);
1406
1407
                        foreach ($subClass->fieldMappings as $fieldName => $mapping) {
1408
                            if (isset($mapping['inherited']) || ($partialFieldSet && !in_array($fieldName, $partialFieldSet))) {
1409
                                continue;
1410
                            }
1411
1412
                            $columnAlias      = $this->getSQLColumnAlias($mapping['columnName']);
1413
                            $quotedColumnName = $this->quoteStrategy->getColumnName($fieldName, $subClass, $this->platform);
1414
1415
                            $col = $sqlTableAlias . '.' . $quotedColumnName;
1416
1417
                            if (isset($mapping['requireSQLConversion'])) {
1418
                                $type = Type::getType($mapping['type']);
1419
                                $col = $type->convertToPHPValueSQL($col, $this->platform);
1420
                            }
1421
1422
                            $sqlParts[] = $col . ' AS ' . $columnAlias;
1423
1424
                            $this->scalarResultAliasMap[$resultAlias][] = $columnAlias;
1425
1426
                            $this->rsm->addFieldResult($dqlAlias, $columnAlias, $fieldName, $subClassName);
1427
                        }
1428
                    }
1429
                }
1430
1431
                $sql .= implode(', ', $sqlParts);