-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Query: in case of joins, we shouldn't be materializing Inner if the qsre itself is not present in final projection #10210
Labels
area-perf
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
punted-for-2.1
type-enhancement
Milestone
Comments
Also related #9892 |
[ConditionalFact]
public virtual void Anonymous_projection_AsNoTracking_Min()
{
AssertQueryScalar<Order>(
os => os.Select(o => new { A = o.CustomerID, B = o.OrderDate })
.AsNoTracking() // Just to cause a subquery
.Select(e => e.B));
} This causes the selector to be evaluated on client. With aggregate operator like Min/Max causes really bad query. Eliminating anonymous types would be helpful in such cases. |
AndriySvyryd
added
the
verify-fixed
This issue is likely fixed in new query pipeline.
label
Aug 22, 2019
verified this issue has been fixed in 3.0 |
maumar
added
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
and removed
verify-fixed
This issue is likely fixed in new query pipeline.
labels
Sep 11, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area-perf
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
punted-for-2.1
type-enhancement
Query:
produces the following query plan:
We actually don't need to materialize inner, so the materializer could be simplified by stripping the transparent identifier.
Another case that could also be improved, is when element of the inner is present in the final projection, but the inner qsre is not. In that case, we also don't need to materialize the inner and we can directly bind to the value buffer instead:
The text was updated successfully, but these errors were encountered: