-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_ERRATA02
-
Fix Version/s: V4.0_ERRATA03
-
Component/s: Protocol
-
Labels:
-
Environment:
Applied
-
Proposal:
-
Resolution:
If the defining query for a delta response includes an expand, the expanded entities must also be tracked.
But, what happens if the expanded entity is deleted or removed from tracking, or if the relationship to a child entity is deleted? Must the delta response continue to track the related entities?
For example, given Customers with a relationship to Orders, and a query for Customers in Washington that expands Orders. If I:
-delete a Customer
-change a Customer's state from Washington
-remove a relationship from a Customer to an Order
Do I have to continue tracking changes to the related Order(s)?
Does the answer depend on whether it's a 1:many relationship (as above) versus a 1:1 (Spouse) or many:many (Orders/Products)?
Does the answer differ it's a containment relationship (Orders to OrderDetails)?
Does the answer depend on whether there are other relationships to the same entity?
It seems that, if the only path to an entity is through an expanded entity that is no longer tracked, or if it's no longer related to that expanded entity, then the service shouldn't have to continue tracking that entity.
Put another way, if the defining query would no longer return the expanded entity due to reasons other than changes to the expanded entity (i.e., that make it no longer match a filtered expand) or the link from the expanded entity being explicitly removed, then the service should not need to (but may continue to) report changes to the "orphaned" entity.
If it does stop tracking, should it return a deleted entity with a reason saying that it's no longer in the graph?. I wouldn't think so, but we should be explicit.