Commit 72277f8
sql: Fix pretty/display round-trip bugs found by fuzzing (#36983)
Print→reparse round-trip bugs in the SQL parser and pretty-printer,
surfaced by the grammar-aware fuzz target. Each fix has a regression
test; the sqllogictest/testdrive plan goldens are refreshed to match.
Themes: quoting bare keyword identifiers (any/all/some/list,
context-sensitive keywords), parenthesizing low-precedence operands
(prefix ops, casts, COLLATE, quantified comparisons), special-form
display correctness (EXTRACT/POSITION/SUBSCRIBE), and bounding parser
recursion/backtracking to reject pathological inputs.
Found by the cargo-fuzz suite ([separate infra
PR](#36982)).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>1 parent 3dcf15e commit 72277f8
27 files changed
Lines changed: 1734 additions & 83 deletions
File tree
- src
- expr/src/explain
- sql-lexer/src
- sql-parser
- src
- ast
- defs
- tests
- testdata
- sql-pretty
- src
- tests
- test
- sqllogictest
- advent-of-code/2023
- testdrive
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1197 | 1197 | | |
1198 | 1198 | | |
1199 | 1199 | | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
1200 | 1208 | | |
1201 | 1209 | | |
1202 | 1210 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
77 | 90 | | |
78 | 91 | | |
79 | 92 | | |
| |||
140 | 153 | | |
141 | 154 | | |
142 | 155 | | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
143 | 183 | | |
144 | 184 | | |
145 | 185 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
429 | 429 | | |
430 | 430 | | |
431 | 431 | | |
432 | | - | |
| 432 | + | |
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
| |||
0 commit comments