-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Fix IN operator after case expression #12184
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
base: 3.5.x
Are you sure you want to change the base?
Fix IN operator after case expression #12184
Conversation
Dinesh0204
commented
Oct 4, 2025
- Added lookahead logic in SimpleConditionalExpression()
- Handles CASE, COALESCE, NULLIF, and parenthesized expressions
- Added comprehensive test coverage
- Fixes Querybuilder: Expected =, <, <=, <>, >, >=, !=, got 'IN' #12178
…expressions - Added lookahead logic in SimpleConditionalExpression() - Handles CASE, COALESCE, NULLIF, and parenthesized expressions - Added comprehensive test coverage Fixes doctrine#12178"
|
Could you please review the EBNF documentation section and make sure it is in sync with your fix? |
d930d82 to
4ed240c
Compare
Hii, |
7e53bf8 to
d04f57b
Compare
|
Hi @mpdude, |
|
For sure you have picked one of the tougher items here 😄 I have been chewing on this for quite some time now, and I am not convinced that this is the right approach to tackle it. Looking at the grammar as it is documented right now, everything is already there: The This should also cover things like The problem is that the implementation in It's been more than two decades since I had the theory on parsers in university... Does that have something to do with the "first set", i. e. for all possible productions on the right hand side of Alternatively: I noticed that |
|
Thanks for the detailed breakdown! I see your point now — it’s more about how the parser decides which production to invoke rather than just fixing one case. I’ll try to dig deeper into this and get a better understanding of the lookahead and first-set logic. |