Commit 2ff410c
Optimize hot path performance for type hint conversion
- ResultSet: Pre-compute column_type_hints tuple once in
_process_metadata instead of per-cell dict creation and .lower()
lookup. Replace **({} if ... else {}) with simple if/else branching.
Applied to AthenaResultSet, AthenaDictResultSet, and S3FS.
- Array JSON guard: Add JSON detection heuristic (check for '"', '[{',
'[null') before json.loads in _convert_typed_array, matching the
existing pattern in map/struct to avoid JSONDecodeError exceptions
on native format strings.
- TypeNode field lookup: Add cached _field_type_map dict for O(1)
name-based field type resolution, replacing O(n) list.index() in
_get_field_type.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 3140978 commit 2ff410c
3 files changed
Lines changed: 106 additions & 77 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
61 | 78 | | |
62 | 79 | | |
63 | 80 | | |
| |||
260 | 277 | | |
261 | 278 | | |
262 | 279 | | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
273 | 294 | | |
274 | 295 | | |
275 | 296 | | |
| |||
376 | 397 | | |
377 | 398 | | |
378 | 399 | | |
379 | | - | |
380 | 400 | | |
381 | 401 | | |
382 | 402 | | |
| |||
387 | 407 | | |
388 | 408 | | |
389 | 409 | | |
390 | | - | |
| 410 | + | |
391 | 411 | | |
392 | 412 | | |
393 | 413 | | |
| |||
413 | 433 | | |
414 | 434 | | |
415 | 435 | | |
416 | | - | |
| 436 | + | |
417 | 437 | | |
418 | 438 | | |
419 | 439 | | |
| |||
428 | 448 | | |
429 | 449 | | |
430 | 450 | | |
| 451 | + | |
431 | 452 | | |
432 | 453 | | |
433 | 454 | | |
| |||
436 | 457 | | |
437 | 458 | | |
438 | 459 | | |
| 460 | + | |
439 | 461 | | |
440 | | - | |
441 | 462 | | |
442 | | - | |
443 | | - | |
| 463 | + | |
444 | 464 | | |
445 | 465 | | |
446 | 466 | | |
447 | 467 | | |
448 | | - | |
| 468 | + | |
| 469 | + | |
449 | 470 | | |
450 | 471 | | |
451 | 472 | | |
452 | | - | |
453 | | - | |
| 473 | + | |
454 | 474 | | |
455 | 475 | | |
456 | 476 | | |
457 | 477 | | |
458 | 478 | | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
463 | 483 | | |
464 | 484 | | |
465 | 485 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| 86 | + | |
86 | 87 | | |
87 | 88 | | |
88 | 89 | | |
| |||
424 | 425 | | |
425 | 426 | | |
426 | 427 | | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
427 | 432 | | |
428 | 433 | | |
429 | 434 | | |
| |||
449 | 454 | | |
450 | 455 | | |
451 | 456 | | |
452 | | - | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
453 | 470 | | |
454 | 471 | | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
463 | | - | |
464 | | - | |
465 | | - | |
466 | | - | |
| 472 | + | |
| 473 | + | |
467 | 474 | | |
468 | 475 | | |
469 | 476 | | |
| |||
645 | 652 | | |
646 | 653 | | |
647 | 654 | | |
648 | | - | |
649 | | - | |
650 | | - | |
651 | | - | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
652 | 659 | | |
653 | 660 | | |
654 | | - | |
655 | | - | |
656 | | - | |
657 | | - | |
658 | | - | |
659 | | - | |
660 | | - | |
661 | | - | |
662 | | - | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
663 | 664 | | |
664 | | - | |
665 | | - | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
666 | 678 | | |
667 | 679 | | |
668 | 680 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
155 | | - | |
| 154 | + | |
156 | 155 | | |
157 | 156 | | |
158 | 157 | | |
| |||
165 | 164 | | |
166 | 165 | | |
167 | 166 | | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
177 | 175 | | |
178 | | - | |
179 | | - | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
180 | 180 | | |
181 | | - | |
182 | 181 | | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
192 | 188 | | |
193 | | - | |
194 | | - | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
195 | 193 | | |
196 | | - | |
197 | 194 | | |
198 | 195 | | |
199 | 196 | | |
| |||
0 commit comments