Skip to content
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: Map projection properly when joining 2 tables #20340

Merged
merged 4 commits into from
Mar 20, 2020

Conversation

smitpatel
Copy link
Member

When joining 2 tables in relational, we lift the table from inner select expression and copy over projections. If one of this projection is same as any outer projection then we reuse the same projection. That means the associated indexes in inner shaper will go to different indexes rather than in linear fashion.
Fix is to remember which index each projection went and use that rather than applying an offset.

Resolves #19616

When joining 2 tables in relational, we lift the table from inner select expression and copy over projections. If one of this projection is same as any outer projection then we reuse the same projection. That means the associated indexes in inner shaper will go to different indexes rather than in linear fashion.
Fix is to remember which index each projection went and use that rather than applying an offset.

Resolves #19616
@smitpatel smitpatel requested a review from a team March 19, 2020 01:32
Fix involves:
- Adding additional materialization conditions for relational layer when table splitting is used. See #20332 for conditions
- Create EntityProjection using the same table when both types are sharing the table.
- Fix a bug in shaper when null entityType is returned from materialization condition, don't call StartTracking.
- Assign nullability to PK column correctly for optional dependents so we don't project it twice.
- Disabled Sql assertion in OwnedQuerySqlServerTest. Will enable after model update as described in #20336, #20343

Resolves #18299
Resolves #20338
Resolves #20332
- Also add at least one additional property in each owned type. If there no columns other than shared PK then it is required dependent.
- Add a property in owned type which would be sharing column for hierarchy. Currently disabled due to #20334

Resolves #20343
Resolves #20336
Finishes left over test work from #20345
@smitpatel smitpatel merged commit ead70ba into master Mar 20, 2020
@smitpatel smitpatel deleted the smit/HavingToDoSameWorkTwiceIsPainful branch March 20, 2020 04:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ArgumentOutOfRangeException upon certain queries with includes
2 participants