Introduced finalizeAndExecute to the AbstractSqlWalker, unified SingleStatementExecutor #11558
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 #11112
I've taken the approach suggested by @beberlei in #11188 (comment)
This essentially delays setting limit/offset and locking on the SQL to the
finalizeAndExecute
function, which accepts theQuery
object as a parameter.I also unified the
SingleSelectExecutor
andSingleTableDeleteUpdateExecutor
into a single class:SingleStatementExecutor
since it was mostly the same implementation.The
Query::getQueryCacheId
was changed to no longer care about thefirstResult
/maxResults
parameters, since using them in the cache key results in different cache keys for what is essentially the same query.I had to expose the
selectedClasses
field from theSqlWalker
since it is used to determine if optimistic locking is possible.Please let me know if this is an acceptable solution.
If so, I will gladly introduce tests/make any other necessary adjustments, per maintaniers' instructions.
Thank you!