Repository navigation
Conversation
Nested subselects reset the inSubSelect flag while the outer one is still being walked, which leaked their path expressions into the paginator SELECT.
rank is a reserved word in MySQL 8, so the fixture insert failed.
…ager Use try/finally in walkSubSelect and clear the EntityManager after the fixture flush.
GromNaN
marked this pull request as ready for review
October 29, 2026 23:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
walkSubSelect()restored$inSubSelecttofalseunconditionally, so a nested subselect cleared the flag while the outer one was still being walked. The path expressions that followed were recorded asORDER BYexpressions and added to the outerSELECT, including aliases that only exist inside theINsubselect. The query failed withUnknown column 'c1_.id' in 'field list'.The flag now restores its previous value.
Before:
After:
The extra
c1_columns in the first block come from theINsubselect. They no longer leak into the outerSELECT.Fixes #12697.