-
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
Look into making SelectExpression (more) immutable, getting rid of TableReferenceExpression #32558
Labels
area-query
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
type-enhancement
Milestone
Comments
8 tasks
Note: I largely rewrote the above to take into account the more recent plan to switch to string table aliases. |
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 14, 2024
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 14, 2024
roji
added
the
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
label
Jan 14, 2024
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 14, 2024
And do some cleanup around table annotations Continues work from dotnet#32558
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 14, 2024
And do some cleanup around table annotations Continues work from dotnet#32558
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 16, 2024
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 18, 2024
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 18, 2024
roji
added a commit
that referenced
this issue
Jan 18, 2024
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 18, 2024
And do some cleanup around table annotations Continues work from dotnet#32558
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 18, 2024
And do some cleanup around table annotations Continues work from dotnet#32558
roji
added a commit
to roji/efcore
that referenced
this issue
Jan 18, 2024
And do some cleanup around table annotations Continues work from dotnet#32558
roji
added a commit
that referenced
this issue
Jan 19, 2024
And do some cleanup around table annotations Continues work from #32558
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area-query
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
type-enhancement
Our ColumnExpressions currently reference their tables via TableReferenceExpressions, which are themselves mutable; this is the source of many bugs, e.g. when the SelectExpression is copied (e.g. when a visitor changes something inside), but the columns remain shared between the two copies, causing various referential integrity problems (e.g. #32234). This system also adds substantial complexity to keep everything in sync, again adding a source of bugs.
To simplify this, we'll consider removing TableReferenceExpression altogether, and have ColumnExpression reference its TableExpressionBase via its string alias only; there would be no actual .NET reference between the column and the table.
Note that we considered two alternatives:
Note that this has nothing to do with the SelectExpression having a "mutable mode", where its projection hasn't yet been applied (that's completely orthogonal to this).
The text was updated successfully, but these errors were encountered: