[11.x] Fix unescaped table names issue of DatabaseTruncation
trait by introducing Connection::withoutTablePrefix()
method
#53842
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 #53838
On PR #53787, we had to pass the table names as
Expression
to the queries onDatabaseTruncation
trait because table names are already prefixed and passing them asstring
(instead ofExpression
) causes query grammar to prefix the table names twice!But when passing as
Expression
, the table names are not escaped which causes issue when tables have reserved names as reported on #53838.This PR adds
withoutTablePrefix()
method to theConnection
class. This method temporary disables the connection's table prefix when executing its given callback. This new method is then used on theDatabaseTruncation
trait.