Commit d8eb009
Fix #3403: wrap top-level infix queries decoding into case classes
#3147 made top-level infix queries pass through unwrapped (TopInfixQuery).
For case-class results this changes the decode contract: extractors decode
positionally in field-declaration order, while the raw SQL (e.g. SELECT *)
returns the table's physical column order — decoders silently read
neighboring columns when the orders differ.
Keep the raw passthrough for single values and tuples (column order is
explicit in the same expression) and restore the wrapping query for
case-class results, whose explicit projection pins the column order.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 5a5b8ae commit d8eb009
2 files changed
Lines changed: 39 additions & 3 deletions
File tree
- quill-engine/src/main/scala/io/getquill/sql
- quill-sql-test/src/test/scala/io/getquill/context/sql
Lines changed: 21 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
72 | 72 | | |
73 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
74 | 76 | | |
75 | 77 | | |
76 | 78 | | |
| |||
119 | 121 | | |
120 | 122 | | |
121 | 123 | | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
122 | 140 | | |
123 | 141 | | |
124 | 142 | | |
| |||
155 | 173 | | |
156 | 174 | | |
157 | 175 | | |
158 | | - | |
| 176 | + | |
159 | 177 | | |
160 | 178 | | |
161 | 179 | | |
| |||
Lines changed: 18 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
378 | 378 | | |
379 | 379 | | |
380 | 380 | | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
381 | 399 | | |
382 | 400 | | |
383 | 401 | | |
| |||
0 commit comments