-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix to #7476 - Query : client-side result operators may cause extensi…
…ve client-side evaluation for queries with GroupJoins (and/or optional navigations) in a subquery When we translate GroupJoin-SelectMany-DefaultIfEmpty we modify query model - we remove additional from clause containing DefaultIfEmpty subquery. However, if we later discover that the subquery (or a subquery higher in the stack) needs client evaluation - e.g. by having client result operator, or calling a client-side method - we need to re-visit this subquery with client evaluation in mind. Problem was that now the query model has been modified - in this specific case SelectMany-DefaultIfEmpty clause has been removed, so we can no longer recognize that this pattern can be simplified and we introduce client GroupJoin. Fix is to save the structure of query model (and all subquery models that it contains) before we visit it - and then, if client evaluation is needed, restore the query model to it's original shape.
- Loading branch information
Showing
5 changed files
with
360 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.