doctrine / orm

Compare 02f3a93 ... +13 ... 5afa360

Coverage Reach
Query/Parser.php Query/SqlWalker.php Query/AST/Functions/SizeFunction.php Query/AST/Functions/TrimFunction.php Query/AST/Functions/DateAddFunction.php Query/AST/Functions/IdentityFunction.php Query/AST/Functions/DateSubFunction.php Query/AST/Functions/LocateFunction.php Query/AST/Functions/SubstringFunction.php Query/AST/Functions/ConcatFunction.php Query/AST/Functions/BitOrFunction.php Query/AST/Functions/BitAndFunction.php Query/AST/Functions/ModFunction.php Query/AST/Functions/DateDiffFunction.php Query/AST/Functions/LengthFunction.php Query/AST/Functions/LowerFunction.php Query/AST/Functions/AbsFunction.php Query/AST/Functions/UpperFunction.php Query/AST/Functions/SqrtFunction.php Query/AST/Functions/CurrentTimeFunction.php Query/AST/Functions/CurrentDateFunction.php Query/AST/Functions/CurrentTimestampFunction.php Query/AST/Functions/CountFunction.php Query/AST/Functions/SumFunction.php Query/AST/Functions/MaxFunction.php Query/AST/Functions/AvgFunction.php Query/AST/Functions/MinFunction.php Query/AST/Functions/FunctionNode.php Query/AST/Node.php Query/AST/QuantifiedExpression.php Query/AST/InputParameter.php Query/AST/ArithmeticFactor.php Query/AST/OrderByItem.php Query/AST/BetweenExpression.php Query/AST/ConditionalPrimary.php Query/AST/ArithmeticExpression.php Query/AST/IndexBy.php Query/AST/CollectionMemberExpression.php Query/AST/ComparisonExpression.php Query/AST/InstanceOfExpression.php Query/AST/Literal.php Query/AST/ConditionalExpression.php Query/AST/ParenthesisExpression.php Query/AST/RangeVariableDeclaration.php Query/AST/JoinClassPathExpression.php Query/AST/Join.php Query/AST/UpdateClause.php Query/AST/AggregateExpression.php Query/AST/OrderByClause.php Query/AST/CoalesceExpression.php Query/AST/GroupByClause.php Query/AST/SimpleArithmeticExpression.php Query/AST/FromClause.php Query/AST/NewObjectExpression.php Query/AST/SelectClause.php Query/AST/PathExpression.php Query/AST/ConditionalTerm.php Query/AST/SubselectFromClause.php Query/AST/ArithmeticTerm.php Query/AST/GeneralCaseExpression.php Query/AST/LikeExpression.php Query/AST/DeleteClause.php Query/AST/JoinAssociationDeclaration.php Query/AST/SelectStatement.php Query/AST/SelectExpression.php Query/AST/WhereClause.php Query/AST/ExistsExpression.php Query/AST/WhenClause.php Query/AST/EmptyCollectionComparisonExpression.php Query/AST/Subselect.php Query/AST/HavingClause.php Query/AST/UpdateStatement.php Query/AST/DeleteStatement.php Query/AST/SimpleSelectExpression.php Query/AST/NullIfExpression.php Query/AST/SimpleWhenClause.php Query/AST/JoinVariableDeclaration.php Query/AST/ConditionalFactor.php Query/AST/NullComparisonExpression.php Query/AST/SimpleCaseExpression.php Query/AST/SimpleSelectClause.php Query/AST/UpdateItem.php Query/AST/IdentificationVariableDeclaration.php Query/AST/InExpression.php Query/AST/PartialObjectExpression.php Query/AST/ASTException.php Query/AST/JoinAssociationPathExpression.php Query/AST/SubselectIdentificationVariableDeclaration.php Query/Exec/MultiTableUpdateExecutor.php Query/Exec/MultiTableDeleteExecutor.php Query/Exec/SingleTableDeleteUpdateExecutor.php Query/Exec/AbstractSqlExecutor.php Query/Exec/SingleSelectExecutor.php Query/Expr/Base.php Query/Expr/Join.php Query/Expr/Math.php Query/Expr/Composite.php Query/Expr/OrderBy.php Query/Expr/From.php Query/Expr/Comparison.php Query/Expr/Func.php Query/Expr/Orx.php Query/Expr/Andx.php Query/Expr/Select.php Query/Expr/GroupBy.php Query/Expr/Literal.php Query/Expr.php Query/ResultSetMapping.php Query/ResultSetMappingBuilder.php Query/QueryExpressionVisitor.php Query/Lexer.php Query/QueryException.php Query/Filter/SQLFilter.php Query/Filter/FilterException.php Query/FilterCollection.php Query/ParameterTypeInferer.php Query/TreeWalkerAdapter.php Query/TreeWalkerChain.php Query/Parameter.php Query/ParserResult.php Query/Printer.php Mapping/Driver/XmlDriver.php Mapping/Driver/AttributeDriver.php Mapping/Driver/DatabaseDriver.php Mapping/Driver/AttributeReader.php Mapping/Driver/SimplifiedXmlDriver.php Mapping/ClassMetadataInfo.php Mapping/Builder/ClassMetadataBuilder.php Mapping/Builder/FieldBuilder.php Mapping/Builder/AssociationBuilder.php Mapping/Builder/ManyToManyAssociationBuilder.php Mapping/Builder/OneToManyAssociationBuilder.php Mapping/Builder/EntityListenerBuilder.php Mapping/Builder/EmbeddedBuilder.php Mapping/ClassMetadataFactory.php Mapping/MappingException.php Mapping/DefaultQuoteStrategy.php Mapping/ReflectionEnumProperty.php Mapping/UnderscoreNamingStrategy.php Mapping/DefaultNamingStrategy.php Mapping/AnsiQuoteStrategy.php Mapping/ReflectionEmbeddedProperty.php Mapping/ReflectionReadonlyProperty.php Mapping/DefaultEntityListenerResolver.php Mapping/Exception/InvalidCustomGenerator.php Mapping/Exception/CannotGenerateIds.php Mapping/Exception/UnknownGeneratorType.php Mapping/AttributeOverrides.php Mapping/AssociationOverride.php Mapping/AssociationOverrides.php Mapping/JoinTable.php Mapping/ClassMetadata.php Mapping/SequenceGenerator.php Mapping/JoinColumnProperties.php Mapping/Index.php Mapping/UniqueConstraint.php Mapping/EntityListeners.php Mapping/GeneratedValue.php Mapping/DiscriminatorColumn.php Mapping/OrderBy.php Mapping/Cache.php Mapping/ChangeTrackingPolicy.php Mapping/OneToMany.php Mapping/ManyToMany.php Mapping/AttributeOverride.php Mapping/DiscriminatorMap.php Mapping/MappedSuperclass.php Mapping/Table.php Mapping/InheritanceType.php Mapping/JoinColumns.php Mapping/OneToOne.php Mapping/Embedded.php Mapping/CustomIdGenerator.php Mapping/Column.php Mapping/Entity.php Mapping/ManyToOne.php Persisters/Entity/BasicEntityPersister.php Persisters/Entity/JoinedSubclassPersister.php Persisters/Entity/SingleTablePersister.php Persisters/Entity/AbstractEntityInheritancePersister.php Persisters/Entity/CachedPersisterContext.php Persisters/Collection/ManyToManyPersister.php Persisters/Collection/OneToManyPersister.php Persisters/Collection/AbstractCollectionPersister.php Persisters/SqlValueVisitor.php Persisters/SqlExpressionVisitor.php Persisters/Exception/UnrecognizedField.php Persisters/Exception/CantUseInOperatorOnCompositeKeys.php Persisters/Exception/InvalidOrientation.php Persisters/MatchingAssociationFieldRequiresObject.php Persisters/PersisterException.php Tools/Console/Command/ClearCache/CollectionRegionCommand.php Tools/Console/Command/ClearCache/EntityRegionCommand.php Tools/Console/Command/ClearCache/QueryRegionCommand.php Tools/Console/Command/ClearCache/MetadataCommand.php Tools/Console/Command/ClearCache/QueryCommand.php Tools/Console/Command/ClearCache/ResultCommand.php Tools/Console/Command/SchemaTool/DropCommand.php Tools/Console/Command/SchemaTool/UpdateCommand.php Tools/Console/Command/SchemaTool/CreateCommand.php Tools/Console/Command/SchemaTool/AbstractCommand.php Tools/Console/Command/MappingDescribeCommand.php Tools/Console/Command/RunDqlCommand.php Tools/Console/Command/ValidateSchemaCommand.php Tools/Console/Command/GenerateProxiesCommand.php Tools/Console/Command/InfoCommand.php Tools/Console/Command/AbstractEntityManagerCommand.php Tools/Console/ConsoleRunner.php Tools/Console/MetadataFilter.php Tools/Console/EntityManagerProvider/SingleManagerProvider.php Tools/Console/EntityManagerProvider/ConnectionFromManagerProvider.php Tools/Console/EntityManagerProvider/UnknownManagerException.php Tools/Pagination/LimitSubqueryOutputWalker.php Tools/Pagination/Paginator.php Tools/Pagination/LimitSubqueryWalker.php Tools/Pagination/WhereInWalker.php Tools/Pagination/CountOutputWalker.php Tools/Pagination/CountWalker.php Tools/Pagination/RowNumberOverFunction.php Tools/Pagination/Exception/RowNumberOverFunctionNotEnabled.php Tools/SchemaTool.php Tools/SchemaValidator.php Tools/DebugUnitOfWorkListener.php Tools/ResolveTargetEntityListener.php Tools/AttachEntityListenersListener.php Tools/Event/GenerateSchemaTableEventArgs.php Tools/Event/GenerateSchemaEventArgs.php Tools/Exception/MissingColumnException.php Tools/Exception/NotSupported.php Tools/ToolsException.php Cache/Persister/Entity/AbstractEntityPersister.php Cache/Persister/Entity/ReadWriteCachedEntityPersister.php Cache/Persister/Entity/NonStrictReadWriteCachedEntityPersister.php Cache/Persister/Entity/ReadOnlyCachedEntityPersister.php Cache/Persister/Collection/AbstractCollectionPersister.php Cache/Persister/Collection/ReadWriteCachedCollectionPersister.php Cache/Persister/Collection/NonStrictReadWriteCachedCollectionPersister.php Cache/Persister/Collection/ReadOnlyCachedCollectionPersister.php Cache/DefaultQueryCache.php Cache/Region/FileLockRegion.php Cache/Region/DefaultRegion.php Cache/Region/UpdateTimestampCache.php Cache/DefaultCache.php Cache/Logging/StatisticsCacheLogger.php Cache/Logging/CacheLoggerChain.php Cache/DefaultEntityHydrator.php Cache/DefaultCacheFactory.php Cache/DefaultCollectionHydrator.php Cache/CacheConfiguration.php Cache/RegionsConfiguration.php Cache/Exception/FeatureNotImplemented.php Cache/Exception/NonCacheableEntityAssociation.php Cache/Exception/NonCacheableEntity.php Cache/Exception/CannotUpdateReadOnlyEntity.php Cache/Exception/CannotUpdateReadOnlyCollection.php Cache/TimestampQueryCacheValidator.php Cache/EntityCacheEntry.php Cache/CollectionCacheKey.php Cache/EntityCacheKey.php Cache/CacheException.php Cache/TimestampCacheEntry.php Cache/Lock.php Cache/QueryCacheEntry.php Cache/AssociationCacheEntry.php Cache/CollectionCacheEntry.php Cache/TimestampCacheKey.php Cache/QueryCacheKey.php Cache/CacheKey.php UnitOfWork.php Internal/Hydration/ObjectHydrator.php Internal/Hydration/AbstractHydrator.php Internal/Hydration/ArrayHydrator.php Internal/Hydration/SimpleObjectHydrator.php Internal/Hydration/HydrationException.php Internal/Hydration/SingleScalarHydrator.php Internal/Hydration/ScalarHydrator.php Internal/Hydration/ScalarColumnHydrator.php Internal/CommitOrderCalculator.php Internal/HydrationCompleteHandler.php Internal/SQLResultCasing.php QueryBuilder.php AbstractQuery.php EntityManager.php PersistentCollection.php Query.php Configuration.php Event/ListenersInvoker.php Event/PreUpdateEventArgs.php Event/LifecycleEventArgs.php Event/OnClassMetadataNotFoundEventArgs.php Event/PostFlushEventArgs.php Event/OnClearEventArgs.php Event/OnFlushEventArgs.php Event/PreFlushEventArgs.php Event/LoadClassMetadataEventArgs.php Utility/PersisterHelper.php Utility/IdentifierFlattener.php Utility/HierarchyDiscriminatorResolver.php Proxy/ProxyFactory.php Decorator/EntityManagerDecorator.php ORMInvalidArgumentException.php EntityRepository.php Id/SequenceGenerator.php Id/AssignedGenerator.php Id/BigIntegerIdentityGenerator.php Id/IdentityGenerator.php Id/AbstractIdGenerator.php ORMSetup.php Exception/NotSupported.php Exception/MultipleSelectorsFoundException.php Exception/UnrecognizedIdentifierFields.php Exception/MissingIdentifierField.php Exception/InvalidEntityRepository.php Exception/EntityMissingAssignedId.php Exception/EntityManagerClosed.php Exception/MissingMappingDriverImplementation.php Exception/UnexpectedAssociationValue.php Exception/InvalidHydrationMode.php NativeQuery.php LazyCriteriaCollection.php Repository/DefaultRepositoryFactory.php Repository/Exception/InvalidMagicMethodCall.php Repository/Exception/InvalidFindByCall.php OptimisticLockException.php EntityNotFoundException.php PessimisticLockException.php Events.php NonUniqueResultException.php TransactionRequiredException.php NoResultException.php

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.


@@ -216,14 +216,14 @@
Loading
216 216
    /**
217 217
     * All pending collection deletions.
218 218
     *
219 -
     * @psalm-var array<int, Collection<array-key, object>>
219 +
     * @psalm-var array<int, PersistentCollection<array-key, object>>
220 220
     */
221 221
    private array $collectionDeletions = [];
222 222
223 223
    /**
224 224
     * All pending collection updates.
225 225
     *
226 -
     * @psalm-var array<int, Collection<array-key, object>>
226 +
     * @psalm-var array<int, PersistentCollection<array-key, object>>
227 227
     */
228 228
    private array $collectionUpdates = [];
229 229
@@ -232,7 +232,7 @@
Loading
232 232
     * At the end of the UnitOfWork all these collections will make new snapshots
233 233
     * of their data.
234 234
     *
235 -
     * @psalm-var array<int, Collection<array-key, object>>
235 +
     * @psalm-var array<int, PersistentCollection<array-key, object>>
236 236
     */
237 237
    private array $visitedCollections = [];
238 238
@@ -374,12 +374,6 @@
Loading
374 374
        try {
375 375
            // Collection deletions (deletions of complete collections)
376 376
            foreach ($this->collectionDeletions as $collectionToDelete) {
377 -
                if (! $collectionToDelete instanceof PersistentCollection) {
378 -
                    $this->getCollectionPersister($collectionToDelete->getMapping())->delete($collectionToDelete);
379 -
380 -
                    continue;
381 -
                }
382 -
383 377
                // Deferred explicit tracked collections can be removed only when owning relation was persisted
384 378
                $owner = $collectionToDelete->getOwner();
385 379
@@ -2792,7 +2786,7 @@
Loading
2792 2786
    /**
2793 2787
     * Gets the currently scheduled complete collection deletions
2794 2788
     *
2795 -
     * @psalm-return array<int, Collection<array-key, object>>
2789 +
     * @psalm-return array<int, PersistentCollection<array-key, object>>
2796 2790
     */
2797 2791
    public function getScheduledCollectionDeletions(): array
2798 2792
    {
@@ -2802,7 +2796,7 @@
Loading
2802 2796
    /**
2803 2797
     * Gets the currently scheduled collection inserts, updates and deletes.
2804 2798
     *
2805 -
     * @psalm-return array<int, Collection<array-key, object>>
2799 +
     * @psalm-return array<int, PersistentCollection<array-key, object>>
2806 2800
     */
2807 2801
    public function getScheduledCollectionUpdates(): array
2808 2802
    {

@@ -85,7 +85,7 @@
Loading
85 85
     *
86 86
     * @param EntityManagerInterface $em    The EntityManager the collection will be associated with.
87 87
     * @param ClassMetadata          $class The class descriptor of the entity type of this collection.
88 -
     * @psalm-param Collection<TKey, T> $collection The collection elements.
88 +
     * @psalm-param Collection<TKey, T>&Selectable<TKey, T> $collection The collection elements.
89 89
     */
90 90
    public function __construct(
91 91
        EntityManagerInterface $em,
@@ -612,11 +612,12 @@
Loading
612 612
    /**
613 613
     * Retrieves the wrapped Collection instance.
614 614
     *
615 -
     * @return Collection<TKey, T>
615 +
     * @return Collection<TKey, T>&Selectable<TKey, T>
616 616
     */
617 617
    public function unwrap(): Collection
618 618
    {
619 -
        assert($this->collection !== null);
619 +
        assert($this->collection instanceof Collection);
620 +
        assert($this->collection instanceof Selectable);
620 621
621 622
        return $this->collection;
622 623
    }

@@ -26,6 +26,7 @@
Loading
26 26
 * The paginator can handle various complex scenarios with DQL.
27 27
 *
28 28
 * @template-covariant T
29 +
 * @implements IteratorAggregate<array-key, T>
29 30
 */
30 31
class Paginator implements Countable, IteratorAggregate
31 32
{

@@ -646,6 +646,8 @@
Loading
646 646
     *
647 647
     * @psalm-param LockMode::* $lockMode
648 648
     *
649 +
     * @return $this
650 +
     *
649 651
     * @throws TransactionRequiredException
650 652
     */
651 653
    public function setLockMode(LockMode|int $lockMode): self

Everything is accounted for!

No changes detected that need to be reviewed.
What changes does Codecov check for?
Lines, not adjusted in diff, that have changed coverage data.
Files that introduced coverage data that had none before.
Files that have missing coverage data that once were tracked.
Files Coverage
lib/Doctrine/ORM 0.01% 89.64%
Project Totals (330 files) 89.64%
Loading