[5.0.2] SQLite Migrations: Quote table names in FROM clause during rebuilds #23620
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #23621
Description
When rebuilding table on SQLite (required for certain schema changes; this is a new feature in 5.0) we create an INSERT..FROM statement to copy data from the old table to the new one. However, we missed quoting the table name.
Customer Impact
Because the name isn't quoted, some tables can't be rebuilt. For example, this includes tables containing spaces in the name or ones matching a SQLite keyword (like GROUP).
How found
Customer reported on 5.0.0
Test coverage
We have tests asserting against baseline SQL, but failed to carefully review the SQL for quotes. The baselines have been updated to catch regressions.
Regression?
No. Table rebuilds are new in EF Core 5.0; the operation would have failed previously.
Risk
Very low. We quote table and column identifiers everywhere else in Migrations.