Commit 8941020
Continue parsing binary operators after parenthesized ORDER BY expressions (#117)
Fixes ORDER BY expressions like `(a + b) * c` being truncated to just `(a + b)`.
- Add isBinaryOperatorToken() to detect binary operators after parenthesized expressions
- Add parseExpressionFrom() to continue Pratt parsing from an existing left operand
- Check for binary operators after parsing parenthesized expressions in ORDER BY
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1 parent 26a512c commit 8941020
3 files changed
Lines changed: 39 additions & 7 deletions
File tree
- parser
- testdata/02911_analyzer_order_by_read_in_order_query_plan
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
136 | 162 | | |
137 | 163 | | |
138 | 164 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2627 | 2627 | | |
2628 | 2628 | | |
2629 | 2629 | | |
2630 | | - | |
2631 | | - | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
| 2634 | + | |
| 2635 | + | |
| 2636 | + | |
| 2637 | + | |
| 2638 | + | |
| 2639 | + | |
| 2640 | + | |
| 2641 | + | |
2632 | 2642 | | |
2633 | 2643 | | |
2634 | 2644 | | |
| |||
Lines changed: 1 addition & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 1 | + | |
0 commit comments